From: Wonsik Jung Date: Wed, 3 Apr 2024 08:29:33 +0000 (+0900) Subject: Fix memory leak in ATSPI event callback. X-Git-Tag: accepted/tizen/unified/20240424.063514~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8c67854d0580a27b6f5d187f156a5a13cb9c0802;p=platform%2Fcore%2Fuifw%2Faurum.git Fix memory leak in ATSPI event callback. Fix Memory leak in ATSPI event callback. The memory leak is related to application instance. Change-Id: I8ac3106ef409ad0691cf78d4d45f42f232d45d26 --- diff --git a/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc b/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc index d0b66ba..3c3c1a9 100644 --- a/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc +++ b/libaurum/src/Impl/Accessibility/AtspiAccessibleWatcher.cc @@ -212,6 +212,7 @@ void AtspiAccessibleWatcher::appendApp(AtspiAccessibleWatcher *instance, AtspiAc mAppCount++; instance->mXMLDocMap.insert({{package, pid}, std::make_shared(std::make_shared(app), &mAppXMLLoadedCount, &mXMLMutex, &mXMLConditionVar)}); + g_object_ref(app); } } } @@ -228,8 +229,6 @@ void AtspiAccessibleWatcher::removeApp(AtspiAccessibleWatcher *instance, AtspiAc instance->mXMLDocMap.erase({package, pid}); } } - - g_object_unref(app); } gpointer AtspiAccessibleWatcher::timerThread(gpointer data) @@ -356,6 +355,11 @@ void AtspiAccessibleWatcher::onAtspiEvents(AtspiEvent *event, void *watcher) else pkg = strdup(""); + if(app) + { + g_object_unref(app); + } + instance->processCallback(event->type, name, pkg); if (!strcmp(event->type, "object:state-changed:defunct")) {