aboutsummaryrefslogtreecommitdiff
path: root/src/util/areastore.cpp
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2021-04-05 13:38:31 +0200
committerrubenwardy <rw@rubenwardy.com>2021-10-20 14:25:39 +0100
commit83e26f839d28c5d9aa75aeab7d924fcaad445007 (patch)
treeff2617af2c8d2ca1b8742c64a28bd659def66743 /src/util/areastore.cpp
parentc3f7905d82e5b1201d81378dedde746caf0e2451 (diff)
downloadminetest-83e26f839d28c5d9aa75aeab7d924fcaad445007.tar.gz
minetest-83e26f839d28c5d9aa75aeab7d924fcaad445007.tar.bz2
minetest-83e26f839d28c5d9aa75aeab7d924fcaad445007.zip
Reserve vectors before pushing and other code quality changes (#11161)
Diffstat (limited to 'src/util/areastore.cpp')
-rw-r--r--src/util/areastore.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/util/areastore.cpp b/src/util/areastore.cpp
index cea526336..67bfef0c0 100644
--- a/src/util/areastore.cpp
+++ b/src/util/areastore.cpp
@@ -96,16 +96,15 @@ void AreaStore::deserialize(std::istream &is)
u16 num_areas = readU16(is);
std::vector<Area> areas;
+ areas.reserve(num_areas);
for (u32 i = 0; i < num_areas; ++i) {
Area a(U32_MAX);
a.minedge = readV3S16(is);
a.maxedge = readV3S16(is);
u16 data_len = readU16(is);
- char *data = new char[data_len];
- is.read(data, data_len);
- a.data = std::string(data, data_len);
- areas.emplace_back(a);
- delete [] data;
+ a.data = std::string(data_len, '\0');
+ is.read(&a.data[0], data_len);
+ areas.emplace_back(std::move(a));
}
bool read_ids = is.good(); // EOF for old formats