Changed: Destructor for CApplicationContext to display singletons still in memory

--HG--
branch : develop
feature/pipeline-tools
kervala 8 years ago
parent bbcd14cecb
commit ba35109fe4

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

@ -124,6 +124,27 @@ CApplicationContext::CApplicationContext()
contextReady(); 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) void *CApplicationContext::getSingletonPointer(const std::string &singletonName)
{ {
TSingletonRegistry::iterator it(_SingletonRegistry.find(singletonName)); TSingletonRegistry::iterator it(_SingletonRegistry.find(singletonName));

Loading…
Cancel
Save