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/Maps/MapTree.cpp | |
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/Maps/MapTree.cpp')
-rw-r--r-- | src/common/Collision/Maps/MapTree.cpp | 10 |
1 files changed, 5 insertions, 5 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; |