diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 34d039994..c18231a6e 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -117,7 +117,8 @@ MapBlock::~MapBlock() #endif delete[] data; - porting::TrackFreedMemory(sizeof(MapNode) * nodecount); + if (!m_is_mono_block) + porting::TrackFreedMemory(sizeof(MapNode) * nodecount); } static inline size_t get_max_objects_per_block() diff --git a/src/mapblock.h b/src/mapblock.h index 7315317ff..ac4710b62 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -440,6 +440,9 @@ private: void reallocate(u32 c, MapNode n) { delete[] data; + if (c == 1) + porting::TrackFreedMemory(sizeof(MapNode) * nodecount); + data = new MapNode[c]; for (u32 i = 0; i < c; i++) data[i] = n;