summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Robbins <kde.psych@gmail.com>2014-12-22 01:37:45 +1000
committerCraig Robbins <kde.psych@gmail.com>2014-12-24 23:13:24 +1000
commit8621e6de5dc031b547739ab3ff8dc1575a284d1b (patch)
tree4a376e7da4bf85a76d0b579d8259b2752246c2ad
parent03beb597c2d102340e3251466922dccf0dd19dd8 (diff)
downloadminetest-8621e6de5dc031b547739ab3ff8dc1575a284d1b.tar.gz
minetest-8621e6de5dc031b547739ab3ff8dc1575a284d1b.tar.bz2
minetest-8621e6de5dc031b547739ab3ff8dc1575a284d1b.zip
Large increase in performance
-rw-r--r--src/mapnode.h15
-rw-r--r--src/voxel.cpp4
2 files changed, 10 insertions, 9 deletions
diff --git a/src/mapnode.h b/src/mapnode.h
index 349739be7..e67724ec1 100644
--- a/src/mapnode.h
+++ b/src/mapnode.h
@@ -143,14 +143,13 @@ struct MapNode
{
*this = n;
}
-
- MapNode(content_t content=CONTENT_AIR, u8 a_param1=0, u8 a_param2=0)
- {
- param0 = content;
- param1 = a_param1;
- param2 = a_param2;
- }
-
+
+ MapNode(content_t content = CONTENT_AIR, u8 a_param1=0, u8 a_param2=0)
+ : param0(content),
+ param1(a_param1),
+ param2(a_param2)
+ { }
+
// Create directly from a nodename
// If name is unknown, sets CONTENT_IGNORE
MapNode(INodeDefManager *ndef, const std::string &name,
diff --git a/src/voxel.cpp b/src/voxel.cpp
index 335ab307c..bd14acb06 100644
--- a/src/voxel.cpp
+++ b/src/voxel.cpp
@@ -180,7 +180,9 @@ void VoxelManipulator::addArea(const VoxelArea &area)
dstream<<std::endl;*/
// Allocate and clear new data
- MapNode *new_data = new MapNode[new_size];
+ // FIXME: UGLY KLUDGE because MapNode default constructor is FUBAR; it
+ // initialises data that is going to be overwritten anyway
+ MapNode *new_data = (MapNode*)new char[new_size * sizeof (*new_data)];
assert(new_data);
u8 *new_flags = new u8[new_size];
assert(new_flags);