]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Add more debug logging of object lifetimes
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 18 Oct 2009 01:40:26 +0000 (01:40 +0000)
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 18 Oct 2009 01:40:26 +0000 (01:40 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11900 e03df62e-2008-0410-955e-edbf42e46eb7

include/logger.h
src/base.cpp
src/inspircd.cpp

index 37020a4ffb04404cdf09792ea46812545997afd7..709d00aed92bd28d1784995f58e45ba52b81d930 100644 (file)
@@ -157,6 +157,7 @@ class CoreExport LogManager : public classbase
        {
                if (noforkstream)
                        delete noforkstream;
+               Logging = true;
        }
 
        /** Sets up the logstream for -nofork. Called by InspIRCd::OpenLog() and LogManager::OpenFileLogs().
index 2e2dbfb287d365c78e3022e8c5c5089dca02884d..15a642eb403aa2145409b63b4262ea9b86e20e3d 100644 (file)
  * ---------------------------------------------------
  */
 
-/* $Core */
-
 #include "inspircd_config.h"
 #include "base.h"
 #include <time.h>
 #include "inspircd.h"
+#include <typeinfo>
 
 classbase::classbase()
 {
+       if (ServerInstance && ServerInstance->Logs)
+               ServerInstance->Logs->Log("CULLLIST", DEBUG, "classbase::+%s @%p",
+                       typeid(*this).name(), (void*)this);
 }
 
 CullResult classbase::cull()
 {
+       if (ServerInstance && ServerInstance->Logs)
+               ServerInstance->Logs->Log("CULLLIST", DEBUG, "classbase::-%s @%p",
+                       typeid(*this).name(), (void*)this);
        return CullResult();
 }
 
 classbase::~classbase()
 {
+       if (ServerInstance && ServerInstance->Logs)
+               ServerInstance->Logs->Log("CULLLIST", DEBUG, "classbase::~%s @%p",
+                       typeid(*this).name(), (void*)this);
 }
 
 CullResult::CullResult()
index c591097245aeeaa0a075c6d7f586c5552af6f752..862aa31d093f26276d92e7db82d6c691c8616980 100644 (file)
@@ -83,11 +83,9 @@ const char* ExitCodes[] =
 
 template<typename T> static void DeleteZero(T*&n)
 {
-       if (n != NULL)
-       {
-               delete n;
-               n = NULL;
-       }
+       T* t = n;
+       n = NULL;
+       delete t;
 }
 
 void InspIRCd::Cleanup()