diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-05-13 18:06:47 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-05-13 18:06:47 +0200 |
commit | f3e741dad1311e0b4057b530386e246f921be52c (patch) | |
tree | 64581e3f0ddfa9d4740eed7b545fe3db87b8c126 /src/util/areastore.cpp | |
parent | 96a37aed31cfb9c131e46eda80bdbe3d2289a546 (diff) | |
parent | 69c70dd319532f7860f211f4a527a902b0386e49 (diff) | |
download | dragonfireclient-f3e741dad1311e0b4057b530386e246f921be52c.tar.xz |
Merge branch 'master' of https://github.com/minetest/minetest
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 |