Skip to content

Commit 3cd1500

Browse files
committed
#2271 BugSplat Crash #1504299: LLFocusableElement::~LLFocusableElement(79)
1 parent 2cc21e9 commit 3cd1500

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

indra/llui/llfocusmgr.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,20 @@ bool LLFocusableElement::wantsReturnKey() const
7373
// virtual
7474
LLFocusableElement::~LLFocusableElement()
7575
{
76-
delete mFocusLostCallback;
77-
delete mFocusReceivedCallback;
78-
delete mFocusChangedCallback;
79-
delete mTopLostCallback;
76+
auto free_signal = [&](focus_signal_t*& signal)
77+
{
78+
if (signal)
79+
{
80+
signal->disconnect_all_slots();
81+
delete signal;
82+
signal = nullptr;
83+
}
84+
};
85+
86+
free_signal(mFocusLostCallback);
87+
free_signal(mFocusReceivedCallback);
88+
free_signal(mFocusChangedCallback);
89+
free_signal(mTopLostCallback);
8090
}
8191

8292
void LLFocusableElement::onFocusReceived()

0 commit comments

Comments
 (0)