Browse Source

Embed data directly in mapblocks

Jude Melton-Houghton 1 year ago
parent
commit
b3503e7853
3 changed files with 4 additions and 7 deletions
  1. 1 4
      src/mapblock.cpp
  2. 2 2
      src/mapblock.h
  3. 1 1
      src/mapnode.h

+ 1 - 4
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)

+ 2 - 2
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<MapBlock*> MapBlockVect;

+ 1 - 1
src/mapnode.h

@@ -135,7 +135,7 @@ struct ContentFeatures;
 */
 
 
-struct MapNode
+struct alignas(u32) MapNode
 {
 	/*
 		Main content