Fix the Octopus to not segfault anymore

This commit is contained in:
Melanie
2013-02-19 03:27:56 +01:00
committed by Lirusaito
parent 4c33328906
commit 2b9c0e34c7

View File

@@ -265,8 +265,9 @@ void HippoFloaterXml::execute(const std::string &cmds)
// ******************************************************************** // ********************************************************************
// generic notification callbacks // generic notification callbacks
static void notifyCallback(LLUICtrl *ctrl) static void notifyCallback(void *c)
{ {
LLUICtrl *ctrl = (LLUICtrl *)c;
std::string msg = "NOTIFY:"; std::string msg = "NOTIFY:";
msg += ctrl->getName(); msg += ctrl->getName();
msg += ':'; msg += ':';
@@ -324,19 +325,16 @@ bool HippoFloaterXmlImpl::execute(LLUICtrl *ctrl,
bool set = (value != "0"); bool set = (value != "0");
if (HippoFloaterXmlImpl *floater = dynamic_cast<HippoFloaterXmlImpl*>(ctrl)) { if (HippoFloaterXmlImpl *floater = dynamic_cast<HippoFloaterXmlImpl*>(ctrl)) {
floater->mIsNotifyOnClose = set; floater->mIsNotifyOnClose = set;
} else if (LLButton *button = dynamic_cast<LLButton*>(ctrl)) } else if (LLButton *button = dynamic_cast<LLButton*>(ctrl)) {
{
if (set) if (set)
floater->mNotices[button] = notice_ptr_t(new notice_connection_t(button->setClickedCallback(boost::bind(&notifyCallback, ctrl)))); button->setClickedCallback(boost::bind(&notifyCallback, _1), ctrl);
else else
floater->mNotices.erase(button); button->setClickedCallback(0, 0);
} } else {
else
{
if (set) if (set)
floater->mNotices[ctrl] = notice_ptr_t(new notice_connection_t(ctrl->setCommitCallback(boost::bind(&notifyCallback, ctrl)))); ctrl->setCommitCallback(boost::bind(&notifyCallback, _1), ctrl);
else else
floater->mNotices.erase(ctrl); ctrl->setCommitCallback(0);
} }
} }
} }