diff --git a/server/gameserver/mapservice.cc b/server/gameserver/mapservice.cc index 9fd74a55..520904b0 100644 --- a/server/gameserver/mapservice.cc +++ b/server/gameserver/mapservice.cc @@ -44,9 +44,9 @@ void MapService::Init(int width, int height, int cell_width) grid_offset_arr_[7] = map_width_; grid_offset_arr_[8] = map_width_ + 1; - map_cells_ = (list_head*)malloc(sizeof(list_head) * width * height); - memset(map_cells_, 0, sizeof(list_head) * width * height); + map_cells_.reserve(width * height); for (int i = 0; i < max_grid_id_; ++i) { + map_cells_.push_back(list_head()); INIT_LIST_HEAD(&map_cells_[i]); } } @@ -63,10 +63,6 @@ void MapService::UnInit() e->holder = nullptr; } } - if (map_cells_) { - free(map_cells_); - map_cells_ = nullptr; - } } bool MapService::CanAdd(const glm::vec3& pos, int rad) diff --git a/server/gameserver/mapservice.h b/server/gameserver/mapservice.h index c4f37707..3689e0cc 100644 --- a/server/gameserver/mapservice.h +++ b/server/gameserver/mapservice.h @@ -31,7 +31,7 @@ class MapService bool TriIntersect(glm::vec3 t1[3], glm::vec3 t2[3]); private: - list_head* map_cells_ = nullptr; + std::vector map_cells_; int map_width_ = 0; int map_height_ = 0; int cell_width_ = 0; diff --git a/server/gameserver/tracemgr.cc b/server/gameserver/tracemgr.cc index 60cc0a44..11dd2217 100644 --- a/server/gameserver/tracemgr.cc +++ b/server/gameserver/tracemgr.cc @@ -64,7 +64,6 @@ std::string TraceMgr::GetBackTrace() data += strings[i]; data += "\n"; } - free(strings); } return data;