[glib] Ensure critial sections are released before returning
- From: Руслан Ижбулатов <ruslanizhb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Ensure critial sections are released before returning
- Date: Thu, 31 Jul 2014 10:47:25 +0000 (UTC)
commit 905a8e655c4f50f655cbd90455b26a37b977c563
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date: Thu Jul 31 10:12:59 2014 +0000
Ensure critial sections are released before returning
https://bugzilla.gnome.org/show_bug.cgi?id=734035
gio/gregistrysettingsbackend.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/gio/gregistrysettingsbackend.c b/gio/gregistrysettingsbackend.c
index 396159c..cf9da0b 100644
--- a/gio/gregistrysettingsbackend.c
+++ b/gio/gregistrysettingsbackend.c
@@ -1754,8 +1754,12 @@ watch_add_notify (GRegistryBackend *self,
EnterCriticalSection (self->cache_lock);
cache_node = registry_cache_get_node_for_key (self->cache_root, gsettings_prefix, TRUE);
- g_return_val_if_fail (cache_node != NULL, FALSE);
- g_return_val_if_fail (cache_node->data != NULL, FALSE);
+ if (cache_node == NULL || cache_node->data == NULL)
+ {
+ LeaveCriticalSection (self->cache_lock);
+ g_warn_if_reached ();
+ return FALSE;
+ }
cache_item = cache_node->data;
@@ -1764,6 +1768,7 @@ watch_add_notify (GRegistryBackend *self,
{
trace ("watch_add_notify: prefix %s already watched, %i subscribers.\n",
gsettings_prefix, cache_item->subscription_count);
+ LeaveCriticalSection (self->cache_lock);
return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]