diff --git a/Include/Aurora/Memory/MemoryView.hpp b/Include/Aurora/Memory/MemoryView.hpp index 8ce2f829..9534fcc7 100644 --- a/Include/Aurora/Memory/MemoryView.hpp +++ b/Include/Aurora/Memory/MemoryView.hpp @@ -424,7 +424,7 @@ namespace Aurora::Memory } bool TryDemoteFromSharedView(const AuSPtr &pCopy) - { + { if (pCopy && pCopy->HasControlBlock()) { AuResetMember(*this, AuConstReference(*pCopy.get())); @@ -435,6 +435,24 @@ namespace Aurora::Memory return false; } } + + void DemoteFromSharedView(const AuSPtr &pCopy) + { + if (!pCopy) + { + AuResetMember(*this); + return; + } + + if (pCopy->HasControlBlock()) + { + AuResetMember(*this, AuConstReference(*pCopy.get())); + } + else + { + AuResetMember(*this, AuConstReference(*pCopy.get()), pCopy); + } + } }; using MemoryViewRead = MemoryView;