summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinwoo Kim <cinoo.kim@samsung.com>2018-02-20 12:23:23 +0900
committerMike Gorse <mgorse@alum.wpi.edu>2018-03-05 17:44:23 -0600
commit493b5a1c83b248f382b677a4f1fbfb7e31f0dc4f (patch)
treec0d5299bbb8c4fed0be672368ea813459c29e6ea
parenteb3d9e06cc612fc94c21f107ee001cadcf2ea95b (diff)
downloadat-spi2-atk-493b5a1c83b248f382b677a4f1fbfb7e31f0dc4f.tar.gz
Do not return without mutex unlock
It is not possible to use cache, after child_added_listener(or toplevel_added_listener) returns by calling g_return_val_if_fail, without g_rec_mutex_unlock. https://bugzilla.gnome.org/show_bug.cgi?id=793625
-rw-r--r--atk-adaptor/accessible-cache.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/atk-adaptor/accessible-cache.c b/atk-adaptor/accessible-cache.c
index 5065a00..a52a8e5 100644
--- a/atk-adaptor/accessible-cache.c
+++ b/atk-adaptor/accessible-cache.c
@@ -324,8 +324,6 @@ child_added_listener (GSignalInvocationHint * signal_hint,
const gchar *detail = NULL;
- g_rec_mutex_lock (&cache_mutex);
-
/*
* Ensure that only accessibles already in the cache
* have their signals processed.
@@ -333,6 +331,8 @@ child_added_listener (GSignalInvocationHint * signal_hint,
accessible = ATK_OBJECT (g_value_get_object (&param_values[0]));
g_return_val_if_fail (ATK_IS_OBJECT (accessible), TRUE);
+ g_rec_mutex_lock (&cache_mutex);
+
if (spi_cache_in (cache, G_OBJECT(accessible)))
{
#ifdef SPI_ATK_DEBUG
@@ -378,10 +378,10 @@ toplevel_added_listener (AtkObject * accessible,
{
SpiCache *cache = spi_global_cache;
- g_rec_mutex_lock (&cache_mutex);
-
g_return_if_fail (ATK_IS_OBJECT (accessible));
+ g_rec_mutex_lock (&cache_mutex);
+
if (spi_cache_in (cache, G_OBJECT(accessible)))
{
#ifdef SPI_ATK_DEBUG