From 718bcafd5174690a7731f9b04873e9a09f7a47b7 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Tue, 17 Feb 2015 14:30:32 +0100 Subject: Replace std::list by std::vector into ServerMap::listAllLoadableBlocks ServerMap::listAllLoadedBlocks and their database backends. This adds a speedup on database migration and /clearobjects command --- src/main.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index de9d95308..092fa9e17 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -973,16 +973,17 @@ static bool migrate_database(const GameParams &game_params, const Settings &cmd_ return false; } - std::list blocks; + std::vector blocks; ServerMap &old_map = ((ServerMap&)server->getMap()); old_map.listAllLoadableBlocks(blocks); int count = 0; new_db->beginSave(); - for (std::list::iterator i = blocks.begin(); i != blocks.end(); i++) { + for (std::vector::iterator i = blocks.begin(); i != blocks.end(); i++) { MapBlock *block = old_map.loadBlock(*i); if (!block) { errorstream << "Failed to load block " << PP(*i) << ", skipping it."; - } else { + } + else { old_map.saveBlock(block, new_db); MapSector *sector = old_map.getSectorNoGenerate(v2s16(i->X, i->Z)); sector->deleteBlock(block); -- cgit v1.2.3