diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-07 01:23:11 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-07 01:23:11 +0100 |
commit | 6b3b2f5965e5dfb2000bb9c23f11a83e175741de (patch) | |
tree | ed106bafd9a943473fe40ff45eb7f30a12a18c9e /src/core/managed | |
parent | cae1060201f453d9d5e2941ed18699ab2a36990f (diff) |
Added code for printing info about hidden Rooted elements
Diffstat (limited to 'src/core/managed')
-rw-r--r-- | src/core/managed/Manager.cpp | 25 | ||||
-rw-r--r-- | src/core/managed/Manager.hpp | 3 |
2 files changed, 19 insertions, 9 deletions
diff --git a/src/core/managed/Manager.cpp b/src/core/managed/Manager.cpp index 4743471..2e0b882 100644 --- a/src/core/managed/Manager.cpp +++ b/src/core/managed/Manager.cpp @@ -21,9 +21,8 @@ #include "Managed.hpp" #include "Manager.hpp" -//#define MANAGER_DEBUG_PRINT - -#if defined(MANAGER_DEBUG_PRINT) || defined(MANAGER_GRAPHVIZ_EXPORT) +#if defined(MANAGER_DEBUG_PRINT) || defined(MANAGER_GRAPHVIZ_EXPORT) || \ + defined(MANAGER_DEBUG_HIDDEN_ROOTED) #include <iostream> #include <fstream> #include <core/common/Rtti.hpp> @@ -195,6 +194,15 @@ void Manager::deleteRef(Managed *tar, Managed *src, bool all) std::cout << "deleteRef " << tar << " <- " << src << std::endl; #endif +#ifdef MANAGER_DEBUG_HIDDEN_ROOTED + if (deletionRecursionDepth > 0 && src == 0) { + std::cerr << "\x1b[41;30mManager:\x1b[0m A managed object contains a rooted reference, " + "this may cause memory leaks!" << std::endl; + std::cerr << "\x1b[41;30mManager:\x1b[0m Referenced object is " << tar << " of type " + << tar->type().name << std::endl; + } +#endif + // Fetch the Managed descriptors for the two objects ObjectDescriptor *dTar = getDescriptor(tar); ObjectDescriptor *dSrc = getDescriptor(src); @@ -700,7 +708,8 @@ void Manager::exportGraphviz(const char *filename) break; } edgeCount -= c; - fs << "labeldistance=\"2\",headlabel=\"" << std::dec << c << "\"]" << std::endl; + fs << "labeldistance=\"2\",headlabel=\"" << std::dec << c + << "\"]" << std::endl; } } @@ -711,10 +720,10 @@ void Manager::exportGraphviz(const char *filename) continue; } uintptr_t pTar = reinterpret_cast<uintptr_t>(owner); - fs << "\tn" << std::hex << std::noshowbase << p << ":ev_" << d.getEventTypeName() << " -> n" - << std::hex << std::noshowbase << pTar - << " [weight=0,penwidth=0.5,color=darkolivegreen4,style=dashed,arrowhead=vee]" - << std::endl; + fs << "\tn" << std::hex << std::noshowbase << p << ":ev_" + << d.getEventTypeName() << " -> n" << std::hex << std::noshowbase + << pTar << " [weight=0,penwidth=0.5,color=darkolivegreen4,style=" + "dashed,arrowhead=vee]" << std::endl; } // Display root edges diff --git a/src/core/managed/Manager.hpp b/src/core/managed/Manager.hpp index 7a93736..6275df1 100644 --- a/src/core/managed/Manager.hpp +++ b/src/core/managed/Manager.hpp @@ -27,8 +27,9 @@ #ifndef _OUSIA_MANAGER_HPP_ #define _OUSIA_MANAGER_HPP_ -//#define MANAGER_DEBUG_PRINT #ifndef NDEBUG +//#define MANAGER_DEBUG_PRINT +#define MANAGER_DEBUG_HIDDEN_ROOTED #define MANAGER_GRAPHVIZ_EXPORT #endif |