summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2015-02-17 14:30:32 +0100
committerLoic Blot <loic.blot@unix-experience.fr>2015-02-17 14:35:44 +0100
commit718bcafd5174690a7731f9b04873e9a09f7a47b7 (patch)
treea2414ca7dde34e097bfe6fe2b4d8a1e0701d10fb /src/main.cpp
parentc58d49977da5aab88f5a9d5b540c6237ca5cdcb5 (diff)
downloadminetest-718bcafd5174690a7731f9b04873e9a09f7a47b7.tar.gz
minetest-718bcafd5174690a7731f9b04873e9a09f7a47b7.tar.bz2
minetest-718bcafd5174690a7731f9b04873e9a09f7a47b7.zip
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
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp7
1 files changed, 4 insertions, 3 deletions
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<v3s16> blocks;
+ std::vector<v3s16> blocks;
ServerMap &old_map = ((ServerMap&)server->getMap());
old_map.listAllLoadableBlocks(blocks);
int count = 0;
new_db->beginSave();
- for (std::list<v3s16>::iterator i = blocks.begin(); i != blocks.end(); i++) {
+ for (std::vector<v3s16>::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);