From 10b7c4a1313395291a77c50189b31e9daf38a2b0 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 29 Apr 2016 21:03:25 +0300 Subject: Add memory counting into ObjectsLayer. --- src/resources/map/map.cpp | 3 ++- src/resources/map/objectslayer.cpp | 6 ++++++ src/resources/map/objectslayer.h | 10 +++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/resources') diff --git a/src/resources/map/map.cpp b/src/resources/map/map.cpp index 01f646877..7045706e1 100644 --- a/src/resources/map/map.cpp +++ b/src/resources/map/map.cpp @@ -1743,7 +1743,8 @@ int Map::calcMemoryChilds(const int level) const mSpecialLayer->calcMemory(level + 1); if (mTempLayer) mTempLayer->calcMemory(level + 1); - // +++ need calc mObjects + if (mObjects) + mObjects->calcMemory(level + 1); // +++ need calc mHeights return sz; } diff --git a/src/resources/map/objectslayer.cpp b/src/resources/map/objectslayer.cpp index ea4f6a27f..7af758d7f 100644 --- a/src/resources/map/objectslayer.cpp +++ b/src/resources/map/objectslayer.cpp @@ -74,3 +74,9 @@ MapObjectList *ObjectsLayer::getAt(const unsigned x, const unsigned y) const return nullptr; return mTiles[x + y * mWidth]; } + +int ObjectsLayer::calcMemoryLocal() const +{ + return sizeof(ObjectsLayer) + + (sizeof(MapObjectList) + sizeof(MapObjectList*)) * mWidth * mHeight; +} diff --git a/src/resources/map/objectslayer.h b/src/resources/map/objectslayer.h index 629b46426..09573a627 100644 --- a/src/resources/map/objectslayer.h +++ b/src/resources/map/objectslayer.h @@ -21,13 +21,15 @@ #ifndef RESOURCES_MAP_OBJECTSLAYER_H #define RESOURCES_MAP_OBJECTSLAYER_H +#include "resources/memorycounter.h" + #include #include "localconsts.h" class MapObjectList; -class ObjectsLayer final +class ObjectsLayer final : public MemoryCounter { public: ObjectsLayer(const unsigned width, const unsigned height); @@ -42,6 +44,12 @@ class ObjectsLayer final MapObjectList *getAt(const unsigned x, const unsigned y) const A_WARN_UNUSED; + + int calcMemoryLocal() const override final; + + std::string getCounterName() const override final + { return "objects leyer"; } + private: MapObjectList **mTiles; unsigned mWidth; -- cgit v1.2.3-70-g09d2