From 37c4338e84265705ec41c5da03e325255a9bce63 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 28 Apr 2016 17:30:18 +0300 Subject: Show object name/source in memory counting tree. --- src/resources/memorycounter.cpp | 5 ++++- src/resources/memorycounter.h | 5 +++++ src/resources/memorymanager.cpp | 6 ++++-- src/resources/memorymanager.h | 5 ++++- src/resources/resource.h | 3 +++ src/resources/resourcemanager.h | 3 +++ 6 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/resources/memorycounter.cpp b/src/resources/memorycounter.cpp index e42a2640d..5d5131644 100644 --- a/src/resources/memorycounter.cpp +++ b/src/resources/memorycounter.cpp @@ -37,7 +37,10 @@ int MemoryCounter::calcMemory(const int level) const { const int sumLocal = calcMemoryLocal(); const int sumChilds = calcMemoryChilds(level); - memoryManager.printMemory(level, sumLocal, sumChilds); + memoryManager.printMemory(getCounterName(), + level, + sumLocal, + sumChilds); return sumLocal + sumChilds; } diff --git a/src/resources/memorycounter.h b/src/resources/memorycounter.h index 94593b717..809a6196d 100644 --- a/src/resources/memorycounter.h +++ b/src/resources/memorycounter.h @@ -21,6 +21,8 @@ #ifndef RESOURCES_MEMORYCOUNTER_H #define RESOURCES_MEMORYCOUNTER_H +#include + #include "localconsts.h" class MemoryCounter notfinal @@ -36,6 +38,9 @@ class MemoryCounter notfinal virtual int calcMemoryLocal() const; virtual int calcMemoryChilds(const int level) const; + + virtual std::string getCounterName() const + { return "unknown"; } }; #endif // RESOURCES_MEMORYCOUNTER_H diff --git a/src/resources/memorymanager.cpp b/src/resources/memorymanager.cpp index 9d4befd30..2da7c0908 100644 --- a/src/resources/memorymanager.cpp +++ b/src/resources/memorymanager.cpp @@ -55,13 +55,15 @@ int MemoryManager::getSurfaceSize(const SDL_Surface *const surface) 10; } -void MemoryManager::printMemory(const int level, +void MemoryManager::printMemory(const std::string &name, + const int level, const int localSum, const int childsSum) { std::string str(level, ' '); - logger->log("%s%d = %d + %d", + logger->log("%s%s: %d = %d + %d", str.c_str(), + name.c_str(), localSum + childsSum, localSum, childsSum); diff --git a/src/resources/memorymanager.h b/src/resources/memorymanager.h index 9243989d3..58fdbbbb5 100644 --- a/src/resources/memorymanager.h +++ b/src/resources/memorymanager.h @@ -21,6 +21,8 @@ #ifndef MEMORYMANAGER_H #define MEMORYMANAGER_H +#include + #include "localconsts.h" class ChatTab; @@ -39,7 +41,8 @@ class MemoryManager final int getSurfaceSize(const SDL_Surface *const surface); - void printMemory(const int level, + void printMemory(const std::string &name, + const int level, const int localSum, const int childsSum); diff --git a/src/resources/resource.h b/src/resources/resource.h index 90cea413c..4d9e03f2d 100644 --- a/src/resources/resource.h +++ b/src/resources/resource.h @@ -101,6 +101,9 @@ class Resource notfinal : public MemoryCounter int calcMemoryLocal() const override; + std::string getCounterName() const override + { return mIdPath + "-" + mSource; } + #ifdef DEBUG_DUMP_LEAKS bool getDumped() const A_WARN_UNUSED { return mDumped; } diff --git a/src/resources/resourcemanager.h b/src/resources/resourcemanager.h index 8d952e207..651142e29 100644 --- a/src/resources/resourcemanager.h +++ b/src/resources/resourcemanager.h @@ -259,6 +259,9 @@ class ResourceManager final : public MemoryCounter int calcMemoryChilds(const int level) const override final; + std::string getCounterName() const override final + { return "ResourceManager"; } + static void init(); private: -- cgit v1.2.3-60-g2f50