diff --git a/src/database-dummy.cpp b/src/database-dummy.cpp index 2e5de5ed11fcd57f914d1c56ffca8b78c9937a39..b38db1fb966f3c1dcbc5eddd3132b87bed4b2d45 100644 --- a/src/database-dummy.cpp +++ b/src/database-dummy.cpp @@ -47,6 +47,7 @@ bool Database_Dummy::deleteBlock(const v3s16 &pos) void Database_Dummy::listAllLoadableBlocks(std::vector<v3s16> &dst) { + dst.reserve(m_database.size()); for (std::map<s64, std::string>::const_iterator x = m_database.begin(); x != m_database.end(); ++x) { dst.push_back(getIntegerAsBlock(x->first)); diff --git a/src/database-redis.cpp b/src/database-redis.cpp index b15f546b2ec245c51d308fc3edce7960eae51cd7..196d72f251e307005bde1cb489638b333e47ee77 100644 --- a/src/database-redis.cpp +++ b/src/database-redis.cpp @@ -169,10 +169,12 @@ void Database_Redis::listAllLoadableBlocks(std::vector<v3s16> &dst) } switch (reply->type) { case REDIS_REPLY_ARRAY: + dst.reserve(reply->elements); for (size_t i = 0; i < reply->elements; i++) { assert(reply->element[i]->type == REDIS_REPLY_STRING); dst.push_back(getIntegerAsBlock(stoi64(reply->element[i]->str))); } + break; case REDIS_REPLY_ERROR: throw FileNotGoodException(std::string( "Failed to get keys from database: ") + reply->str);