diff options
author | sfan5 <sfan5@live.de> | 2021-04-05 13:38:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-05 13:38:31 +0200 |
commit | f0bad0e2badbb7d4777aac7de1b50239bca4010a (patch) | |
tree | 4c3115a42ac86e9a64d9e5f088fe187022885779 /src/util/areastore.cpp | |
parent | 3e1904fa8c4aae3448d58b7e60545a4fdd8234f3 (diff) | |
download | minetest-f0bad0e2badbb7d4777aac7de1b50239bca4010a.tar.xz |
Reserve vectors before pushing and other code quality changes (#11161)
Diffstat (limited to 'src/util/areastore.cpp')
-rw-r--r-- | src/util/areastore.cpp | 9 |
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 |