Skip to content

Commit b5f7249

Browse files
committedAug 19, 2017
Code modernization: src/m* (part 2)
* empty function * default constructor/destructor * remove unused Map::emergeSector(a,b) * for range-based loops * migrate a dirs[7] table to direction tables * remove various old unused function
1 parent e53d8a7 commit b5f7249

13 files changed

+159
-244
lines changed
 

‎src/map.cpp

+49-99
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,8 @@ Map::~Map()
7474
/*
7575
Free all MapSectors
7676
*/
77-
for(std::map<v2s16, MapSector*>::iterator i = m_sectors.begin();
78-
i != m_sectors.end(); ++i)
79-
{
80-
delete i->second;
77+
for (auto &sector : m_sectors) {
78+
delete sector.second;
8179
}
8280
}
8381

@@ -93,11 +91,8 @@ void Map::removeEventReceiver(MapEventReceiver *event_receiver)
9391

9492
void Map::dispatchEvent(MapEditEvent *event)
9593
{
96-
for(std::set<MapEventReceiver*>::iterator
97-
i = m_event_receivers.begin();
98-
i != m_event_receivers.end(); ++i)
99-
{
100-
(*i)->onMapEditEvent(event);
94+
for (MapEventReceiver *event_receiver : m_event_receivers) {
95+
event_receiver->onMapEditEvent(event);
10196
}
10297
}
10398

@@ -110,7 +105,7 @@ MapSector * Map::getSectorNoGenerateNoExNoLock(v2s16 p)
110105

111106
std::map<v2s16, MapSector*>::iterator n = m_sectors.find(p);
112107

113-
if(n == m_sectors.end())
108+
if (n == m_sectors.end())
114109
return NULL;
115110

116111
MapSector *sector = n->second;
@@ -182,7 +177,7 @@ MapNode Map::getNodeNoEx(v3s16 p, bool *is_valid_position)
182177
if (block == NULL) {
183178
if (is_valid_position != NULL)
184179
*is_valid_position = false;
185-
return MapNode(CONTENT_IGNORE);
180+
return {CONTENT_IGNORE};
186181
}
187182

188183
v3s16 relpos = p - blockpos*MAP_BLOCKSIZE;
@@ -254,14 +249,11 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
254249

255250
// Update lighting
256251
std::vector<std::pair<v3s16, MapNode> > oldnodes;
257-
oldnodes.push_back(std::pair<v3s16, MapNode>(p, oldnode));
252+
oldnodes.emplace_back(p, oldnode);
258253
voxalgo::update_lighting_nodes(this, oldnodes, modified_blocks);
259254

260-
for(std::map<v3s16, MapBlock*>::iterator
261-
i = modified_blocks.begin();
262-
i != modified_blocks.end(); ++i)
263-
{
264-
i->second->expireDayNightDiff();
255+
for (auto &modified_block : modified_blocks) {
256+
modified_block.second->expireDayNightDiff();
265257
}
266258

267259
// Report for rollback
@@ -277,18 +269,9 @@ void Map::addNodeAndUpdate(v3s16 p, MapNode n,
277269
Add neighboring liquid nodes and this node to transform queue.
278270
(it's vital for the node itself to get updated last, if it was removed.)
279271
*/
280-
v3s16 dirs[7] = {
281-
v3s16(0,0,1), // back
282-
v3s16(0,1,0), // top
283-
v3s16(1,0,0), // right
284-
v3s16(0,0,-1), // front
285-
v3s16(0,-1,0), // bottom
286-
v3s16(-1,0,0), // left
287-
v3s16(0,0,0), // self
288-
};
289-
for(u16 i=0; i<7; i++)
290-
{
291-
v3s16 p2 = p + dirs[i];
272+
273+
for (const v3s16 &dir : g_7dirs) {
274+
v3s16 p2 = p + dir;
292275

293276
bool is_valid_position;
294277
MapNode n2 = getNodeNoEx(p2, &is_valid_position);
@@ -318,11 +301,8 @@ bool Map::addNodeWithEvent(v3s16 p, MapNode n, bool remove_metadata)
318301
addNodeAndUpdate(p, n, modified_blocks, remove_metadata);
319302

320303
// Copy modified_blocks to event
321-
for(std::map<v3s16, MapBlock*>::iterator
322-
i = modified_blocks.begin();
323-
i != modified_blocks.end(); ++i)
324-
{
325-
event.modified_blocks.insert(i->first);
304+
for (auto &modified_block : modified_blocks) {
305+
event.modified_blocks.insert(modified_block.first);
326306
}
327307
}
328308
catch(InvalidPositionException &e){
@@ -346,11 +326,8 @@ bool Map::removeNodeWithEvent(v3s16 p)
346326
removeNodeAndUpdate(p, modified_blocks);
347327

348328
// Copy modified_blocks to event
349-
for(std::map<v3s16, MapBlock*>::iterator
350-
i = modified_blocks.begin();
351-
i != modified_blocks.end(); ++i)
352-
{
353-
event.modified_blocks.insert(i->first);
329+
for (auto &modified_block : modified_blocks) {
330+
event.modified_blocks.insert(modified_block.first);
354331
}
355332
}
356333
catch(InvalidPositionException &e){
@@ -397,19 +374,15 @@ void Map::timerUpdate(float dtime, float unload_timeout, u32 max_loaded_blocks,
397374

398375
// If there is no practical limit, we spare creation of mapblock_queue
399376
if (max_loaded_blocks == U32_MAX) {
400-
for (std::map<v2s16, MapSector*>::iterator si = m_sectors.begin();
401-
si != m_sectors.end(); ++si) {
402-
MapSector *sector = si->second;
377+
for (auto &sector_it : m_sectors) {
378+
MapSector *sector = sector_it.second;
403379

404380
bool all_blocks_deleted = true;
405381

406382
MapBlockVect blocks;
407383
sector->getBlocks(blocks);
408384

409-
for (MapBlockVect::iterator i = blocks.begin();
410-
i != blocks.end(); ++i) {
411-
MapBlock *block = (*i);
412-
385+
for (MapBlock *block : blocks) {
413386
block->incrementUsageTimer(dtime);
414387

415388
if (block->refGet() == 0
@@ -439,22 +412,18 @@ void Map::timerUpdate(float dtime, float unload_timeout, u32 max_loaded_blocks,
439412
}
440413

441414
if (all_blocks_deleted) {
442-
sector_deletion_queue.push_back(si->first);
415+
sector_deletion_queue.push_back(sector_it.first);
443416
}
444417
}
445418
} else {
446419
std::priority_queue<TimeOrderedMapBlock> mapblock_queue;
447-
for (std::map<v2s16, MapSector*>::iterator si = m_sectors.begin();
448-
si != m_sectors.end(); ++si) {
449-
MapSector *sector = si->second;
420+
for (auto &sector_it : m_sectors) {
421+
MapSector *sector = sector_it.second;
450422

451423
MapBlockVect blocks;
452424
sector->getBlocks(blocks);
453425

454-
for(MapBlockVect::iterator i = blocks.begin();
455-
i != blocks.end(); ++i) {
456-
MapBlock *block = (*i);
457-
426+
for (MapBlock *block : blocks) {
458427
block->incrementUsageTimer(dtime);
459428
mapblock_queue.push(TimeOrderedMapBlock(sector, block));
460429
}
@@ -491,10 +460,9 @@ void Map::timerUpdate(float dtime, float unload_timeout, u32 max_loaded_blocks,
491460
block_count_all--;
492461
}
493462
// Delete empty sectors
494-
for (std::map<v2s16, MapSector*>::iterator si = m_sectors.begin();
495-
si != m_sectors.end(); ++si) {
496-
if (si->second->empty()) {
497-
sector_deletion_queue.push_back(si->first);
463+
for (auto &sector_it : m_sectors) {
464+
if (sector_it.second->empty()) {
465+
sector_deletion_queue.push_back(sector_it.first);
498466
}
499467
}
500468
}
@@ -876,7 +844,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks,
876844
MapBlock *block = getBlockNoCreateNoEx(blockpos);
877845
if (block != NULL) {
878846
modified_blocks[blockpos] = block;
879-
changed_nodes.push_back(std::pair<v3s16, MapNode>(p0, n00));
847+
changed_nodes.emplace_back(p0, n00);
880848
}
881849

882850
/*
@@ -902,8 +870,8 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks,
902870
}
903871
//infostream<<"Map::transformLiquids(): loopcount="<<loopcount<<std::endl;
904872

905-
for (std::deque<v3s16>::iterator iter = must_reflow.begin(); iter != must_reflow.end(); ++iter)
906-
m_transforming_liquid.push_back(*iter);
873+
for (auto &iter : must_reflow)
874+
m_transforming_liquid.push_back(iter);
907875

908876
voxalgo::update_lighting_nodes(this, changed_nodes, modified_blocks);
909877

@@ -1205,14 +1173,11 @@ ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef,
12051173
m_savedir = savedir;
12061174
m_map_saving_enabled = false;
12071175

1208-
try
1209-
{
1176+
try {
12101177
// If directory exists, check contents and load if possible
1211-
if(fs::PathExists(m_savedir))
1212-
{
1178+
if (fs::PathExists(m_savedir)) {
12131179
// If directory is empty, it is safe to save into it.
1214-
if(fs::GetDirListing(m_savedir).size() == 0)
1215-
{
1180+
if (fs::GetDirListing(m_savedir).empty()) {
12161181
infostream<<"ServerMap: Empty save directory is valid."
12171182
<<std::endl;
12181183
m_map_saving_enabled = true;
@@ -1442,10 +1407,8 @@ void ServerMap::finishBlockMake(BlockMakeData *data,
14421407
data->transforming_liquid.pop_front();
14431408
}
14441409

1445-
for (std::map<v3s16, MapBlock *>::iterator
1446-
it = changed_blocks->begin();
1447-
it != changed_blocks->end(); ++it) {
1448-
MapBlock *block = it->second;
1410+
for (auto &changed_block : *changed_blocks) {
1411+
MapBlock *block = changed_block.second;
14491412
if (!block)
14501413
continue;
14511414
/*
@@ -1975,10 +1938,7 @@ void ServerMap::save(ModifiedState save_level)
19751938
MapBlockVect blocks;
19761939
sector->getBlocks(blocks);
19771940

1978-
for(MapBlockVect::iterator j = blocks.begin();
1979-
j != blocks.end(); ++j) {
1980-
MapBlock *block = *j;
1981-
1941+
for (MapBlock *block : blocks) {
19821942
block_count_all++;
19831943

19841944
if(block->getModified() >= (u32)save_level) {
@@ -2032,17 +1992,14 @@ void ServerMap::listAllLoadableBlocks(std::vector<v3s16> &dst)
20321992

20331993
void ServerMap::listAllLoadedBlocks(std::vector<v3s16> &dst)
20341994
{
2035-
for(std::map<v2s16, MapSector*>::iterator si = m_sectors.begin();
2036-
si != m_sectors.end(); ++si)
2037-
{
2038-
MapSector *sector = si->second;
1995+
for (auto &sector_it : m_sectors) {
1996+
MapSector *sector = sector_it.second;
20391997

20401998
MapBlockVect blocks;
20411999
sector->getBlocks(blocks);
20422000

2043-
for(MapBlockVect::iterator i = blocks.begin();
2044-
i != blocks.end(); ++i) {
2045-
v3s16 p = (*i)->getPos();
2001+
for (MapBlock *block : blocks) {
2002+
v3s16 p = block->getPos();
20462003
dst.push_back(p);
20472004
}
20482005
}
@@ -2232,22 +2189,22 @@ MapDatabase *ServerMap::createDatabase(
22322189
if (name == "dummy")
22332190
return new Database_Dummy();
22342191
#if USE_LEVELDB
2235-
else if (name == "leveldb")
2192+
if (name == "leveldb")
22362193
return new Database_LevelDB(savedir);
22372194
#endif
22382195
#if USE_REDIS
2239-
else if (name == "redis")
2196+
if (name == "redis")
22402197
return new Database_Redis(conf);
22412198
#endif
22422199
#if USE_POSTGRESQL
2243-
else if (name == "postgresql") {
2244-
std::string connect_string = "";
2200+
if (name == "postgresql") {
2201+
std::string connect_string;
22452202
conf.getNoEx("pgsql_connection", connect_string);
22462203
return new MapDatabasePostgreSQL(connect_string);
22472204
}
22482205
#endif
2249-
else
2250-
throw BaseException(std::string("Database backend ") + name + " not supported.");
2206+
2207+
throw BaseException(std::string("Database backend ") + name + " not supported.");
22512208
}
22522209

22532210
void ServerMap::beginSave()
@@ -2448,7 +2405,7 @@ MapBlock* ServerMap::loadBlock(v3s16 blockpos)
24482405

24492406
std::string ret;
24502407
dbase->loadBlock(blockpos, &ret);
2451-
if (ret != "") {
2408+
if (!ret.empty()) {
24522409
loadBlock(&ret, blockpos, createSector(p2d), false);
24532410
} else {
24542411
// Not found in database, try the files
@@ -2556,10 +2513,6 @@ MMVManip::MMVManip(Map *map):
25562513
{
25572514
}
25582515

2559-
MMVManip::~MMVManip()
2560-
{
2561-
}
2562-
25632516
void MMVManip::initialEmerge(v3s16 blockpos_min, v3s16 blockpos_max,
25642517
bool load_if_inexistent)
25652518
{
@@ -2657,13 +2610,10 @@ void MMVManip::blitBackAll(std::map<v3s16, MapBlock*> *modified_blocks,
26572610
/*
26582611
Copy data of all blocks
26592612
*/
2660-
for(std::map<v3s16, u8>::iterator
2661-
i = m_loaded_blocks.begin();
2662-
i != m_loaded_blocks.end(); ++i)
2663-
{
2664-
v3s16 p = i->first;
2613+
for (auto &loaded_block : m_loaded_blocks) {
2614+
v3s16 p = loaded_block.first;
26652615
MapBlock *block = m_map->getBlockNoCreateNoEx(p);
2666-
bool existed = !(i->second & VMANIP_BLOCK_DATA_INEXIST);
2616+
bool existed = !(loaded_block.second & VMANIP_BLOCK_DATA_INEXIST);
26672617
if (!existed || (block == NULL) ||
26682618
(!overwrite_generated && block->isGenerated()))
26692619
continue;

‎src/map.h

+1-3
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,6 @@ class Map /*: public NodeContainer*/
168168
their differing fetch methods.
169169
*/
170170
virtual MapSector * emergeSector(v2s16 p){ return NULL; }
171-
virtual MapSector * emergeSector(v2s16 p,
172-
std::map<v3s16, MapBlock*> &changed_blocks){ return NULL; }
173171

174172
// Returns InvalidPositionException if not found
175173
MapBlock * getBlockNoCreate(v3s16 p);
@@ -496,7 +494,7 @@ class MMVManip : public VoxelManipulator
496494
{
497495
public:
498496
MMVManip(Map *map);
499-
virtual ~MMVManip();
497+
virtual ~MMVManip() = default;
500498

501499
virtual void clear()
502500
{

0 commit comments

Comments
 (0)
Please sign in to comment.