]> granicus.if.org Git - icinga2/commitdiff
Bugfix: Missing parent object causes assert in ReplicationComponent::Stop
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 1 Feb 2013 10:46:52 +0000 (11:46 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 1 Feb 2013 10:46:52 +0000 (11:46 +0100)
Fixes #3601

lib/base/dynamicobject.cpp

index 807c316263c78452cb2bb5c49db7a8ddbcba92d0..dcec7be92de5764cf16ee0504f15d433b1413645 100644 (file)
@@ -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());
 }