From f1d768733c8b9166bbfb6943567b01b9d6fbcb15 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Wed, 17 Dec 2014 02:42:46 +0100 Subject: made ManagedContainer more roboust against managed objects already being deleted while removing the reference to the owner --- src/core/managed/ManagedContainer.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/managed') diff --git a/src/core/managed/ManagedContainer.hpp b/src/core/managed/ManagedContainer.hpp index 68477e0..19bff3f 100644 --- a/src/core/managed/ManagedContainer.hpp +++ b/src/core/managed/ManagedContainer.hpp @@ -162,7 +162,7 @@ protected: void addElement(const value_type &elem) { Managed* managed = accessor.getManaged(elem); - Manager &manager = managed->getManager(); + Manager &manager = owner ? owner->getManager() : managed->getManager(); manager.addRef(managed, owner); listener.addElement(elem, owner); @@ -179,7 +179,7 @@ protected: void deleteElement(const value_type &elem) { Managed* managed = accessor.getManaged(elem); - Manager &manager = managed->getManager(); + Manager &manager = owner ? owner->getManager() : managed->getManager(); manager.deleteRef(managed, owner); listener.deleteElement(elem, owner); -- cgit v1.2.3