diff --git a/indra/newview/aoengine.cpp b/indra/newview/aoengine.cpp index 652fbe141e..032916c6ca 100644 --- a/indra/newview/aoengine.cpp +++ b/indra/newview/aoengine.cpp @@ -66,12 +66,17 @@ AOEngine::AOEngine() : { gSavedPerAccountSettings.getControl("UseAO")->getCommitSignal()->connect(boost::bind(&AOEngine::onToggleAOControl, this)); - gAgent.addRegionChangedCallback(boost::bind(&AOEngine::onRegionChange, this)); + mRegionChangeConnection = gAgent.addRegionChangedCallback(boost::bind(&AOEngine::onRegionChange, this)); } AOEngine::~AOEngine() { clear(false); + + if (mRegionChangeConnection.connected()) + { + mRegionChangeConnection.disconnect(); + } } void AOEngine::init() diff --git a/indra/newview/aoengine.h b/indra/newview/aoengine.h index 905a7534cf..904edae163 100644 --- a/indra/newview/aoengine.h +++ b/indra/newview/aoengine.h @@ -214,6 +214,8 @@ class AOEngine std::vector mOldImportSets; LLUUID mImportCategory; S32 mImportRetryCount; + + boost::signals2::connection mRegionChangeConnection; }; #endif // AOENGINE_H