From b3503e7853a52a8c16431f6b983e30c9d25951bc Mon Sep 17 00:00:00 2001 From: Jude Melton-Houghton Date: Sun, 9 Oct 2022 11:55:07 -0400 Subject: [PATCH] Embed data directly in mapblocks --- src/mapblock.cpp | 5 +---- src/mapblock.h | 4 ++-- src/mapnode.h | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 6d61508fa..ca2145cef 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -70,8 +70,7 @@ MapBlock::MapBlock(Map *parent, v3s16 pos, IGameDef *gamedef): m_parent(parent), m_pos(pos), m_pos_relative(pos * MAP_BLOCKSIZE), - m_gamedef(gamedef), - data(new MapNode[nodecount]) + m_gamedef(gamedef) { reallocate(); } @@ -84,8 +83,6 @@ MapBlock::~MapBlock() mesh = nullptr; } #endif - - delete[] data; } bool MapBlock::isValidPositionParent(v3s16 p) diff --git a/src/mapblock.h b/src/mapblock.h index 0aa0139c6..1ab0ce80c 100644 --- a/src/mapblock.h +++ b/src/mapblock.h @@ -481,8 +481,6 @@ private: IGameDef *m_gamedef; - MapNode *const data; - /* - On the server, this is used for telling whether the block has been modified from the one on disk. @@ -536,6 +534,8 @@ private: the list of blocks to be drawn. */ int m_refcount = 0; + + MapNode data[nodecount]; }; typedef std::vector MapBlockVect; diff --git a/src/mapnode.h b/src/mapnode.h index 43ce7e621..c3137bbcb 100644 --- a/src/mapnode.h +++ b/src/mapnode.h @@ -135,7 +135,7 @@ struct ContentFeatures; */ -struct MapNode +struct alignas(u32) MapNode { /* Main content