[glib] registrybackend: do not leak self if there are no items
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] registrybackend: do not leak self if there are no items
- Date: Thu, 4 Feb 2016 10:19:02 +0000 (UTC)
commit 74442a0b8c59adf110b9072ac50955f45f59130c
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Thu Feb 4 11:16:45 2016 +0100
registrybackend: do not leak self if there are no items
gio/gregistrysettingsbackend.c | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
---
diff --git a/gio/gregistrysettingsbackend.c b/gio/gregistrysettingsbackend.c
index f4314ec..a4ddfbf 100644
--- a/gio/gregistrysettingsbackend.c
+++ b/gio/gregistrysettingsbackend.c
@@ -1732,10 +1732,8 @@ watch_thread_function (LPVOID parameter)
* likely to block (only when changing notification subscriptions).
*/
event = g_slice_new (RegistryEvent);
-
- event->self = G_REGISTRY_BACKEND (self->owner);
- g_object_ref (self->owner);
-
+ event->self = g_object_ref (self->owner);
+ event->prefix = g_strdup (prefix);
event->items = g_ptr_array_new_with_free_func (g_free);
EnterCriticalSection (G_REGISTRY_BACKEND (self->owner)->cache_lock);
@@ -1744,12 +1742,11 @@ watch_thread_function (LPVOID parameter)
LeaveCriticalSection (G_REGISTRY_BACKEND (self->owner)->cache_lock);
if (event->items->len > 0)
- {
- event->prefix = g_strdup (prefix);
- g_idle_add ((GSourceFunc) watch_handler, event);
- }
+ g_idle_add ((GSourceFunc) watch_handler, event);
else
{
+ g_object_unref (event->self);
+ g_free (event->prefix);
g_ptr_array_free (event->items, TRUE);
g_slice_free (RegistryEvent, event);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]