diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-12-17 02:42:46 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-12-17 02:42:46 +0100 |
commit | f1d768733c8b9166bbfb6943567b01b9d6fbcb15 (patch) | |
tree | 10f7ad581b1775e492e90e8d431d7ac121b02550 /src/core/managed/ManagedContainer.hpp | |
parent | 540689657f4b080b1c1b49d6e654d9761b16e67b (diff) |
made ManagedContainer more roboust against managed objects already being deleted while removing the reference to the owner
Diffstat (limited to 'src/core/managed/ManagedContainer.hpp')
-rw-r--r-- | src/core/managed/ManagedContainer.hpp | 4 |
1 files changed, 2 insertions, 2 deletions
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); |