From db42e7188ecc605b2c80fe8a72dbf1b5b0676a49 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 20 Jan 2026 22:53:28 +0100 Subject: [PATCH] Core/Utils: Add aliasing constructors to Trinity::unique_weak_ptr allowing linked object lifetime (for example Aura and AuraEffect) --- src/common/Utilities/UniqueTrackablePtr.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/common/Utilities/UniqueTrackablePtr.h b/src/common/Utilities/UniqueTrackablePtr.h index 6c90dfd2752..c20eea32d17 100644 --- a/src/common/Utilities/UniqueTrackablePtr.h +++ b/src/common/Utilities/UniqueTrackablePtr.h @@ -179,6 +179,14 @@ public: unique_weak_ptr(unique_weak_ptr&& other) noexcept : _ptr(std::move(other)._ptr) { } + template + unique_weak_ptr(unique_trackable_ptr const& aliased, T* aliasValue) + : _ptr(std::shared_ptr(aliased._ptr, aliasValue)) { } + + template + unique_weak_ptr(unique_trackable_ptr&& aliased, T* aliasValue) + : _ptr(std::shared_ptr(std::move(aliased)._ptr, aliasValue)) { } + unique_weak_ptr& operator=(unique_trackable_ptr const& trackable) { _ptr = trackable._ptr;