From 6e05f7da99521db9d53ed65521008eef00c2b22f Mon Sep 17 00:00:00 2001 From: dfighter1985 Date: Thu, 17 May 2012 03:38:27 +0200 Subject: [PATCH] FIXED: Crash caused by CInterfaceLinkUpdater trying to remove itself after CInterfaceManager had been released. --- code/ryzom/client/src/interface_v3/interface_link.cpp | 1 - code/ryzom/client/src/interface_v3/interface_manager.cpp | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/ryzom/client/src/interface_v3/interface_link.cpp b/code/ryzom/client/src/interface_v3/interface_link.cpp index 7ab34ac8c..e8c2db540 100644 --- a/code/ryzom/client/src/interface_v3/interface_link.cpp +++ b/code/ryzom/client/src/interface_v3/interface_link.cpp @@ -137,7 +137,6 @@ CInterfaceLink::CInterfaceLinkUpdater::CInterfaceLinkUpdater() CInterfaceLink::CInterfaceLinkUpdater::~CInterfaceLinkUpdater() { - CInterfaceManager::getInstance()->removeFlushObserver( this ); } void CInterfaceLink::CInterfaceLinkUpdater::onObserverCallFlush() diff --git a/code/ryzom/client/src/interface_v3/interface_manager.cpp b/code/ryzom/client/src/interface_v3/interface_manager.cpp index 135d6812a..580b25526 100644 --- a/code/ryzom/client/src/interface_v3/interface_manager.cpp +++ b/code/ryzom/client/src/interface_v3/interface_manager.cpp @@ -370,6 +370,8 @@ CInterfaceManager::~CInterfaceManager() // release the database observers releaseServerToLocalAutoCopyObservers(); + + removeFlushObserver( interfaceLinkUpdater ); delete interfaceLinkUpdater; interfaceLinkUpdater = NULL; }