Remove expensive copy of ContentFeatures
authorgregorycu <gregory.currie@gmail.com>
Wed, 30 Mar 2016 14:07:47 +0000 (01:07 +1100)
committerkwolekr <kwolekr@minetest.net>
Wed, 30 Mar 2016 15:38:42 +0000 (11:38 -0400)
src/map.cpp

index 40950423233a417a44de6f605076988218fcf86d..66fabaf873d234c8b288542adb590bf9cd6fd022 100644 (file)
@@ -1614,7 +1614,7 @@ s32 Map::transforming_liquid_size() {
         return m_transforming_liquid.size();
 }
 
-void Map::transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks)
+void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks)
 {
 
        INodeDefManager *nodemgr = m_gamedef->ndef();
@@ -1632,7 +1632,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks)
        std::deque<v3s16> must_reflow;
 
        // List of MapBlocks that will require a lighting update (due to lava)
-       std::map<v3s16, MapBlock*> lighting_modified_blocks;
+       std::map<v3s16, MapBlock *> lighting_modified_blocks;
 
        u32 liquid_loop_max = g_settings->getS32("liquid_loop_max");
        u32 loop_max = liquid_loop_max;
@@ -1675,7 +1675,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks)
                s8 liquid_level = -1;
                content_t liquid_kind = CONTENT_IGNORE;
                content_t floodable_node = CONTENT_AIR;
-               ContentFeatures cf = nodemgr->get(n0);
+               const ContentFeatures &cf = nodemgr->get(n0);
                LiquidType liquid_type = cf.liquid_type;
                switch (liquid_type) {
                        case LIQUID_SOURCE:
@@ -1721,7 +1721,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> & modified_blocks)
                        }
                        v3s16 npos = p0 + dirs[i];
                        NodeNeighbor nb(getNodeNoEx(npos), nt, npos);
-                       ContentFeatures cfnb = nodemgr->get(nb.n);
+                       const ContentFeatures &cfnb = nodemgr->get(nb.n);
                        switch (nodemgr->get(nb.n.getContent()).liquid_type) {
                                case LIQUID_NONE:
                                        if (cfnb.floodable) {