diff options
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/llmutelist.cpp | 29 | ||||
| -rwxr-xr-x | indra/newview/llmutelist.h | 5 | 
2 files changed, 13 insertions, 21 deletions
| diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp index 681203ef4f..88bfefa8b8 100755 --- a/indra/newview/llmutelist.cpp +++ b/indra/newview/llmutelist.cpp @@ -47,6 +47,7 @@  #include "pipeline.h"  #include <boost/tokenizer.hpp> +#include <boost/bind.hpp>  #include "lldispatcher.h"  #include "llxfermanager.h" @@ -146,22 +147,6 @@ std::string LLMute::getDisplayType() const  	}  } - -/* static */ -LLMuteList* LLMuteList::getInstance() -{ -	// Register callbacks at the first time that we find that the message system has been created. -	static BOOL registered = FALSE; -	if( !registered && gMessageSystem) -	{ -		registered = TRUE; -		// Register our various callbacks -		gMessageSystem->setHandlerFuncFast(_PREHASH_MuteListUpdate, processMuteListUpdate); -		gMessageSystem->setHandlerFuncFast(_PREHASH_UseCachedMuteList, processUseCachedMuteList); -	} -	return LLSingleton<LLMuteList>::getInstance(); // Call the "base" implementation. -} -  //-----------------------------------------------------------------------------  // LLMuteList()  //----------------------------------------------------------------------------- @@ -169,6 +154,18 @@ LLMuteList::LLMuteList() :  	mIsLoaded(FALSE)  {  	gGenericDispatcher.addHandler("emptymutelist", &sDispatchEmptyMuteList); + +	// Register our callbacks. We may be constructed before gMessageSystem, so +	// use callWhenReady() to register them as soon as gMessageSystem becomes +	// available. +	// When using bind(), must be explicit about default arguments such as +	// that last NULL. +	gMessageSystem.callWhenReady(boost::bind(&LLMessageSystem::setHandlerFuncFast, _1, +											 _PREHASH_MuteListUpdate, processMuteListUpdate, +											 static_cast<void**>(NULL))); +	gMessageSystem.callWhenReady(boost::bind(&LLMessageSystem::setHandlerFuncFast, _1, +											 _PREHASH_UseCachedMuteList, processUseCachedMuteList, +											 static_cast<void**>(NULL)));  }  //----------------------------------------------------------------------------- diff --git a/indra/newview/llmutelist.h b/indra/newview/llmutelist.h index 3e998b4f0e..d315f225bf 100755 --- a/indra/newview/llmutelist.h +++ b/indra/newview/llmutelist.h @@ -84,11 +84,6 @@ public:  	LLMuteList();  	~LLMuteList(); -	// Implemented locally so that we can perform some delayed initialization.  -	// Callers should be careful to call this one and not LLSingleton<LLMuteList>::getInstance() -	// which would circumvent that mechanism. -MG -	static LLMuteList* getInstance(); -  	void addObserver(LLMuteListObserver* observer);  	void removeObserver(LLMuteListObserver* observer); | 
