diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-10-01 21:03:44 +0200 |
|---|---|---|
| committer | Ovahlord <dreadkiller@gmx.de> | 2024-10-03 00:38:15 +0200 |
| commit | d2d3457b2fd0635e3a32a701bd0b2d17b0374b4a (patch) | |
| tree | 74d8698c82179ef42bf7fe0b29006d3234a31652 /src/common/Collision | |
| parent | e05461a0ed83ef500321383668f05bb4ba6dc6a7 (diff) | |
Core/Utilities: Extend make_unique_ptr_with_deleter functionality to allow it to create deleters with compile time constant functions (reduces its size to just sizeof(void*))
(cherry picked from commit b13b5142f1009a71ff06786ac8c8db92891f566a)
Diffstat (limited to 'src/common/Collision')
| -rw-r--r-- | src/common/Collision/Maps/MapTree.cpp | 10 | ||||
| -rw-r--r-- | src/common/Collision/Models/GameObjectModel.cpp | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/common/Collision/Maps/MapTree.cpp b/src/common/Collision/Maps/MapTree.cpp index bde07b30065..d828326806c 100644 --- a/src/common/Collision/Maps/MapTree.cpp +++ b/src/common/Collision/Maps/MapTree.cpp @@ -196,11 +196,11 @@ namespace VMAP struct TileFileOpenResult { - using FileHandle = decltype(Trinity::make_unique_ptr_with_deleter<FILE>(nullptr, &::fclose)); + using FileDeleter = decltype(Trinity::unique_ptr_deleter<FILE*, &::fclose>()); std::string Name; - FileHandle TileFile = { nullptr, &::fclose }; - FileHandle SpawnIndicesFile = { nullptr, &::fclose }; + std::unique_ptr<FILE, FileDeleter> TileFile; + std::unique_ptr<FILE, FileDeleter> SpawnIndicesFile; int32 UsedMapId; explicit operator bool() const { return TileFile && SpawnIndicesFile; } @@ -239,7 +239,7 @@ namespace VMAP basePath.push_back('/'); std::string fullname = basePath + VMapManager2::getMapFileName(mapID); - auto rf = Trinity::make_unique_ptr_with_deleter(fopen(fullname.c_str(), "rb"), &::fclose); + auto rf = Trinity::make_unique_ptr_with_deleter<&::fclose>(fopen(fullname.c_str(), "rb")); if (!rf) return LoadResult::FileNotFound; @@ -263,7 +263,7 @@ namespace VMAP { TC_LOG_DEBUG("maps", "StaticMapTree::InitMap() : initializing StaticMapTree '{}'", fname); std::string fullname = iBasePath + fname; - auto rf = Trinity::make_unique_ptr_with_deleter(fopen(fullname.c_str(), "rb"), &::fclose); + auto rf = Trinity::make_unique_ptr_with_deleter<&::fclose>(fopen(fullname.c_str(), "rb")); if (!rf) return LoadResult::FileNotFound; diff --git a/src/common/Collision/Models/GameObjectModel.cpp b/src/common/Collision/Models/GameObjectModel.cpp index b32a5bdd44f..9fcf1b85e20 100644 --- a/src/common/Collision/Models/GameObjectModel.cpp +++ b/src/common/Collision/Models/GameObjectModel.cpp @@ -46,7 +46,7 @@ bool LoadGameObjectModelList(std::string const& dataPath) { uint32 oldMSTime = getMSTime(); - auto model_list_file = Trinity::make_unique_ptr_with_deleter(fopen((dataPath + "vmaps/" + VMAP::GAMEOBJECT_MODELS).c_str(), "rb"), &::fclose); + auto model_list_file = Trinity::make_unique_ptr_with_deleter<&::fclose>(fopen((dataPath + "vmaps/" + VMAP::GAMEOBJECT_MODELS).c_str(), "rb")); if (!model_list_file) { TC_LOG_ERROR("misc", "Unable to open '{}' file.", VMAP::GAMEOBJECT_MODELS); |
