From ef213b258cb4dc13bf72be75e5967c4420c3c8d8 Mon Sep 17 00:00:00 2001 From: Andreas Stoeckel Date: Sun, 12 Apr 2015 23:33:27 +0200 Subject: Owned should behave just like Rooted if the owner is set to nullptr --- src/core/managed/Managed.hpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/core/managed/Managed.hpp b/src/core/managed/Managed.hpp index 26118dc..e38efea 100644 --- a/src/core/managed/Managed.hpp +++ b/src/core/managed/Managed.hpp @@ -551,15 +551,23 @@ private: void addRef() { - if (Handle::ptr && owner) { - owner->getManager().addRef(Handle::ptr, owner); + if (Handle::ptr) { + if (owner) { + owner->getManager().addRef(Handle::ptr, owner); + } else { + Handle::ptr->getManager().addRef(Handle::ptr, owner); + } } } void deleteRef() { - if (Handle::ptr && owner) { - owner->getManager().deleteRef(Handle::ptr, owner); + if (Handle::ptr) { + if (owner) { + owner->getManager().deleteRef(Handle::ptr, owner); + } else { + Handle::ptr->getManager().deleteRef(Handle::ptr, owner); + } } } -- cgit v1.2.3