summaryrefslogtreecommitdiff
path: root/src/mapblock.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-11-13 12:54:33 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-11-29 19:13:41 +0200
commit3b77a63d5dbfff0ae5ca8eb04a001904f7f568b2 (patch)
treec89430a5746c4eaf1177afd0f948595de87437e7 /src/mapblock.cpp
parent64fa59e24f7b3e046b7dfeba930e44c86e32668e (diff)
downloadminetest-3b77a63d5dbfff0ae5ca8eb04a001904f7f568b2.tar.gz
minetest-3b77a63d5dbfff0ae5ca8eb04a001904f7f568b2.tar.bz2
minetest-3b77a63d5dbfff0ae5ca8eb04a001904f7f568b2.zip
Allocate MapBlock::m_node_metadata on heap to allow less header bloat
Diffstat (limited to 'src/mapblock.cpp')
-rw-r--r--src/mapblock.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/mapblock.cpp b/src/mapblock.cpp
index 85cd7e45e..012cbd4d1 100644
--- a/src/mapblock.cpp
+++ b/src/mapblock.cpp
@@ -24,12 +24,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "light.h"
#include <sstream>
#include "mapnode_contentfeatures.h"
+#include "nodemetadata.h"
/*
MapBlock
*/
MapBlock::MapBlock(Map *parent, v3s16 pos, bool dummy):
+ m_node_metadata(new NodeMetadataList),
m_parent(parent),
m_pos(pos),
m_modified(MOD_STATE_WRITE_NEEDED),
@@ -44,8 +46,6 @@ MapBlock::MapBlock(Map *parent, v3s16 pos, bool dummy):
if(dummy == false)
reallocate();
- //m_spawn_timer = -10000;
-
#ifndef SERVER
m_mesh_expired = false;
mesh_mutex.Init();
@@ -68,6 +68,8 @@ MapBlock::~MapBlock()
}
#endif
+ delete m_node_metadata;
+
if(data)
delete[] data;
}
@@ -632,7 +634,7 @@ void MapBlock::serialize(std::ostream &os, u8 version)
{
try{
std::ostringstream oss(std::ios_base::binary);
- m_node_metadata.serialize(oss);
+ m_node_metadata->serialize(oss);
os<<serializeString(oss.str());
}
// This will happen if the string is longer than 65535
@@ -645,7 +647,7 @@ void MapBlock::serialize(std::ostream &os, u8 version)
else
{
std::ostringstream oss(std::ios_base::binary);
- m_node_metadata.serialize(oss);
+ m_node_metadata->serialize(oss);
compressZlib(oss.str(), os);
//os<<serializeLongString(oss.str());
}
@@ -784,7 +786,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version)
{
std::string data = deSerializeString(is);
std::istringstream iss(data, std::ios_base::binary);
- m_node_metadata.deSerialize(iss);
+ m_node_metadata->deSerialize(iss);
}
else
{
@@ -792,7 +794,7 @@ void MapBlock::deSerialize(std::istream &is, u8 version)
std::ostringstream oss(std::ios_base::binary);
decompressZlib(is, oss);
std::istringstream iss(oss.str(), std::ios_base::binary);
- m_node_metadata.deSerialize(iss);
+ m_node_metadata->deSerialize(iss);
}
}
catch(SerializationError &e)