From e928b1fabf697aa9bc70094ac229c0d9c3457f2d Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 1 Feb 2013 11:46:52 +0100 Subject: [PATCH] Bugfix: Missing parent object causes assert in ReplicationComponent::Stop Fixes #3601 --- lib/base/dynamicobject.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/base/dynamicobject.cpp b/lib/base/dynamicobject.cpp index 807c31626..dcec7be92 100644 --- a/lib/base/dynamicobject.cpp +++ b/lib/base/dynamicobject.cpp @@ -267,11 +267,13 @@ void DynamicObject::Register(void) { assert(Application::IsMainThread()); - DynamicObject::Ptr dobj = GetType()->GetObject(GetName()); + DynamicType::Ptr dtype = GetType(); + + DynamicObject::Ptr dobj = dtype->GetObject(GetName()); DynamicObject::Ptr self = GetSelf(); assert(!dobj || dobj == self); - GetType()->RegisterObject(self); + dtype->RegisterObject(self); OnRegistered(GetSelf()); @@ -287,10 +289,12 @@ void DynamicObject::Unregister(void) { assert(Application::IsMainThread()); - if (!GetType()->GetObject(GetName())) + DynamicType::Ptr dtype = GetType(); + + if (!dtype || !dtype->GetObject(GetName())) return; - GetType()->UnregisterObject(GetSelf()); + dtype->UnregisterObject(GetSelf()); OnUnregistered(GetSelf()); } -- 2.50.0