42template <
class OwnerClass>
87 str <<
"\nBacktrace " <<
String (counter++) <<
"\n"
88 <<
"-----------------------------------------------------------------" <<
"\n"
106 return OwnerClass::getLeakedObjectClassName();
111#if DOXYGEN || ! defined (JUCE_HEAVYWEIGHT_LEAK_DETECTOR)
112 #if (DOXYGEN || JUCE_CHECK_MEMORY_LEAKS)
135 #define JUCE_HEAVYWEIGHT_LEAK_DETECTOR(OwnerClass) \
136 friend class juce::HeavyweightLeakedObjectDetector<OwnerClass>; \
137 static const char* getLeakedObjectClassName() noexcept { return #OwnerClass; } \
138 juce::HeavyweightLeakedObjectDetector<OwnerClass> JUCE_JOIN_MACRO (leakDetector, __LINE__);
140 #define JUCE_HEAVYWEIGHT_LEAK_DETECTOR(OwnerClass)
#define noexcept
Definition DistrhoDefines.h:72
HeavyweightLeakedObjectDetector() noexcept
Definition juce_HeavyweightLeakedObjectDetector.h:47
static const char * getLeakedObjectClassName()
Definition juce_HeavyweightLeakedObjectDetector.h:104
std::map< HeavyweightLeakedObjectDetector< OwnerClass > *, String > BacktraceMap
Definition juce_HeavyweightLeakedObjectDetector.h:54
static BacktraceMap & getBacktraceMap()
Definition juce_HeavyweightLeakedObjectDetector.h:98
~HeavyweightLeakedObjectDetector()
Definition juce_HeavyweightLeakedObjectDetector.h:50
HeavyweightLeakedObjectDetector(const HeavyweightLeakedObjectDetector &) noexcept
Definition juce_HeavyweightLeakedObjectDetector.h:48
Definition juce_String.h:53
static String getStackBacktrace()
Definition juce_SystemStats.cpp:132
Definition carla_juce.cpp:31
Definition juce_HeavyweightLeakedObjectDetector.h:58
~BacktraceMapHolder()
Definition juce_HeavyweightLeakedObjectDetector.h:61
String getFormattedBacktracesString() const
Definition juce_HeavyweightLeakedObjectDetector.h:80
BacktraceMapHolder()=default
BacktraceMap map
Definition juce_HeavyweightLeakedObjectDetector.h:95