summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2009-11-18 14:27:58 -0800
committerJames Cook <james@lindenlab.com>2009-11-18 14:27:58 -0800
commita46794bcff15b70ab4e5e04ce12d118579b72245 (patch)
treeaa369e73a15ab2303a311f5cbe5ba5dbcfce6361
parent1875d5e37ba1591ba9b75014a7618f38427f0d2f (diff)
EXT-2579 Fix memory leak/bloat due to /me IRC-style emotes.
Pending review with Richard/Leyla
-rw-r--r--indra/newview/llchatitemscontainerctrl.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 997aed4277..56b7520bd5 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -188,7 +188,17 @@ void LLNearbyChatToastPanel::init(LLSD& notification)
}
mText = mText.substr(3);
style_params.font.style = "UNDERLINE";
+#define INFINITE_REFLOW_BUG 0
+#if INFINITE_REFLOW_BUG
+ // This causes LLTextBase::reflow() to infinite loop until the viewer
+ // runs out of memory, throws a bad_alloc exception from std::vector
+ // in mLineInfoList, and the main loop catches it and continues.
+ // It appears to be caused by addText() adding a line separator in the
+ // middle of a line. See EXT-2579, EXT-1949
msg_text->addText(mText,style_params);
+#else
+ msg_text->appendText(mText, FALSE, style_params);
+#endif
}
else
{