Browse Source

Remove HashMap dependency from HeavyweightLeakedObjectDetector so it can be included as early as possible

tags/2021-05-28
ed 6 years ago
parent
commit
09daeb3a6d
2 changed files with 8 additions and 8 deletions
  1. +2
    -2
      modules/juce_core/juce_core.h
  2. +6
    -6
      modules/juce_core/memory/juce_HeavyweightLeakedObjectDetector.h

+ 2
- 2
modules/juce_core/juce_core.h View File

@@ -269,6 +269,8 @@ namespace juce
#include "text/juce_StringPool.h"
#include "text/juce_Identifier.h"
#include "text/juce_StringArray.h"
#include "system/juce_SystemStats.h"
#include "memory/juce_HeavyweightLeakedObjectDetector.h"
#include "text/juce_StringPairArray.h"
#include "text/juce_TextDiff.h"
#include "text/juce_LocalisedStrings.h"
@@ -280,8 +282,6 @@ namespace juce
#include "containers/juce_NamedValueSet.h"
#include "containers/juce_DynamicObject.h"
#include "containers/juce_HashMap.h"
#include "system/juce_SystemStats.h"
#include "memory/juce_HeavyweightLeakedObjectDetector.h"
#include "time/juce_RelativeTime.h"
#include "time/juce_Time.h"
#include "streams/juce_InputStream.h"


+ 6
- 6
modules/juce_core/memory/juce_HeavyweightLeakedObjectDetector.h View File

@@ -44,14 +44,14 @@ class HeavyweightLeakedObjectDetector
{
public:
//==============================================================================
HeavyweightLeakedObjectDetector() noexcept { getBacktraceMap().set (this, SystemStats::getStackBacktrace()); }
HeavyweightLeakedObjectDetector (const HeavyweightLeakedObjectDetector&) noexcept { getBacktraceMap().set (this, SystemStats::getStackBacktrace()); }
HeavyweightLeakedObjectDetector() noexcept { getBacktraceMap()[this] = SystemStats::getStackBacktrace(); }
HeavyweightLeakedObjectDetector (const HeavyweightLeakedObjectDetector&) noexcept { getBacktraceMap()[this] = SystemStats::getStackBacktrace(); }
~HeavyweightLeakedObjectDetector() { getBacktraceMap().remove (this); }
~HeavyweightLeakedObjectDetector() { getBacktraceMap().erase (this); }
private:
//==============================================================================
typedef HashMap<HeavyweightLeakedObjectDetector<OwnerClass>*, String> BacktraceMap;
typedef std::map<HeavyweightLeakedObjectDetector<OwnerClass>*, String> BacktraceMap;
//==============================================================================
struct BacktraceMapHolder
@@ -82,11 +82,11 @@ private:
String str;
int counter = 1;
for (typename BacktraceMap::Iterator i (map); i.next();)
for (auto& bt : map)
{
str << "\nBacktrace " << String (counter++) << "\n"
<< "-----------------------------------------------------------------" << "\n"
<< i.getValue();
<< bt.second;
}
return str;


Loading…
Cancel
Save