Changed: Destructor for CApplicationContext to display singletons still in memory

This commit is contained in:
kervala 2016-12-10 18:48:53 +01:00
parent cf840353ce
commit af70349233
2 changed files with 22 additions and 0 deletions

View file

@ -108,6 +108,7 @@ namespace NLMISC
{
public:
CApplicationContext();
virtual ~CApplicationContext();
virtual void *getSingletonPointer(const std::string &singletonName);
virtual void setSingletonPointer(const std::string &singletonName, void *ptr);

View file

@ -124,6 +124,27 @@ CApplicationContext::CApplicationContext()
contextReady();
}
CApplicationContext::~CApplicationContext()
{
#ifdef NL_DEBUG
TSingletonRegistry::iterator it = _SingletonRegistry.begin(), iend = _SingletonRegistry.end();
while (it != iend)
{
// can't use nldebug there because it'll create new displayers
std::string message = toString("Instance '%s' still allocated at %p", it->first.c_str(), it->second);
#ifdef NL_OS_WINDOWS
OutputDebugStringW(utf8ToWide(message));
#else
printf("%s\n", message.c_str());
#endif
++it;
}
#endif
}
void *CApplicationContext::getSingletonPointer(const std::string &singletonName)
{
TSingletonRegistry::iterator it(_SingletonRegistry.find(singletonName));