diff options
author | Vadim Savchuk <vsavchuk@productengine.com> | 2010-09-20 19:08:45 +0300 |
---|---|---|
committer | Vadim Savchuk <vsavchuk@productengine.com> | 2010-09-20 19:08:45 +0300 |
commit | 022f9bd9a8b80481bb5ecfd651457fe6df3bae30 (patch) | |
tree | d539533c63b47d2b2d5ecffa299070966c707c0f /indra/newview/lltextureview.cpp | |
parent | b92ca367aed209b6e8007035ea307d5a0c8d53dc (diff) |
STORM-192 ADDITIONAL FIX Fixed crash on pressing Ctrl+Shift+W (which closes all floaters).
The crash was introduced by my previous fix of this ticket in changeset 8ceebd3612f0.
The problem was that, suprisingly, even invisible (faded) toasts were destroyed when you hit Ctrl_Shift+W,
however they were still referenced by the toast pool, so the references were invalidated.
The easiest fix would be to remove all references to the toast being destroyed, no matter is it visible or not.
However, then we'd have to search for each destroyed toast in the pool, which is slow.
Besides, removing toasts from the pool compromises the whole idea of pooling (which was introduced to speed up creation of new toasts).
Another possible fix is not to destroy any nearby chat toasts when user hits Ctrl+Shift+W.
That would save us from any crashes at a price of changing existing behaviour (the toasts will remain visible).
So I went for a third option: when closing all floaters, skip invisible ones.
Then there won't be attempts to destroy invisible (pooled) toasts, so the crash won't happen,
and we don't seem to change any existing behavior.
However I'm not 100% sure of the latter statement, so the fix requires extensive testing.
Diffstat (limited to 'indra/newview/lltextureview.cpp')
0 files changed, 0 insertions, 0 deletions