diff --git a/src/util/io/reader.hpp b/src/util/io/reader.hpp index 79df57c5..9eaa70fe 100644 --- a/src/util/io/reader.hpp +++ b/src/util/io/reader.hpp @@ -217,9 +217,10 @@ template void Reader::handle(const Char* name, vector& vector) { String vectorKey = singular_form(name); while (enterBlock(vectorKey.c_str())) { - vector.resize(vector.size() + 1); - handle_greedy(vector.back()); - update_index(vector.back(), vector.size() - 1); // update index for IndexMap + T item; + handle_greedy(item); + update_index(item, vector.size()); // update index for IndexMap + vector.emplace_back(std::move(item)); exitBlock(); } }