diff --git a/src/liteloader/api/memory/MemoryUtils.h b/src/liteloader/api/memory/MemoryUtils.h index 5f590dacfe..a44242a159 100644 --- a/src/liteloader/api/memory/MemoryUtils.h +++ b/src/liteloader/api/memory/MemoryUtils.h @@ -83,36 +83,38 @@ template return *(T*)(((uintptr_t)ptr) + off); } -template -[[nodiscard]] inline size_t getMemSizeFromPtr(std::shared_ptr& ptr) { - // clang-format off - return _msize(dAccess(std::addressof(ptr), 8) // ptr* 8, rep* 8 - ) - ( // rep: - 8 + // vtable - 4 * 2 // uses & weaks - /**/ // storage - ); - // clang-format on -} - -template -[[nodiscard]] inline size_t getMemSizeFromPtr(std::weak_ptr& ptr) { - // clang-format off - return _msize(dAccess(std::addressof(ptr), 8) // ptr* 8, rep* 8 - ) - ( // rep: - 8 + // vtable - 4 * 2 // uses & weaks - /**/ // storage - ); - // clang-format on +[[nodiscard]] inline size_t getMemSizeFromPtr(void* ptr) { + if (!ptr) { return 0; } + return _msize(ptr); } template [[nodiscard]] inline size_t getMemSizeFromPtr(std::unique_ptr& ptr) { + if (!ptr) { return 0; } return _msize(ptr.get()); } -[[nodiscard]] inline size_t getMemSizeFromPtr(void* ptr) { return _msize(ptr); } +template