forked from Mirrorlandia_minetest/minetest
Allocate data seperately from MapBlock class again
This effectively reverts commit b3503e7853a52a8c16431f6b983e30c9d25951bc.
This commit is contained in:
parent
2c2bc4a427
commit
cb6e3ac6e1
@ -70,6 +70,7 @@ MapBlock::MapBlock(Map *parent, v3s16 pos, IGameDef *gamedef):
|
|||||||
m_parent(parent),
|
m_parent(parent),
|
||||||
m_pos(pos),
|
m_pos(pos),
|
||||||
m_pos_relative(pos * MAP_BLOCKSIZE),
|
m_pos_relative(pos * MAP_BLOCKSIZE),
|
||||||
|
data(new MapNode[nodecount]),
|
||||||
m_gamedef(gamedef)
|
m_gamedef(gamedef)
|
||||||
{
|
{
|
||||||
reallocate();
|
reallocate();
|
||||||
@ -83,6 +84,8 @@ MapBlock::~MapBlock()
|
|||||||
mesh = nullptr;
|
mesh = nullptr;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
delete[] data;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MapBlock::onObjectsActivation()
|
bool MapBlock::onObjectsActivation()
|
||||||
|
@ -502,6 +502,13 @@ private:
|
|||||||
*/
|
*/
|
||||||
v3s16 m_pos_relative;
|
v3s16 m_pos_relative;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note that this is not an inline array because that has implications on
|
||||||
|
* heap fragmentation (the array is exactly 16K), CPU caches and/or
|
||||||
|
* optimizability of algorithms working on this array.
|
||||||
|
*/
|
||||||
|
MapNode *const data; // of `nodecount` elements
|
||||||
|
|
||||||
IGameDef *m_gamedef;
|
IGameDef *m_gamedef;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -558,7 +565,6 @@ private:
|
|||||||
*/
|
*/
|
||||||
int m_refcount = 0;
|
int m_refcount = 0;
|
||||||
|
|
||||||
MapNode data[nodecount];
|
|
||||||
NodeTimerList m_node_timers;
|
NodeTimerList m_node_timers;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user