diff options
author | Shinwoo Kim <cinoo.kim@samsung.com> | 2018-02-20 12:23:23 +0900 |
---|---|---|
committer | Mike Gorse <mgorse@alum.wpi.edu> | 2018-03-05 17:44:23 -0600 |
commit | 493b5a1c83b248f382b677a4f1fbfb7e31f0dc4f (patch) | |
tree | c0d5299bbb8c4fed0be672368ea813459c29e6ea | |
parent | eb3d9e06cc612fc94c21f107ee001cadcf2ea95b (diff) | |
download | at-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.c | 8 |
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 (¶m_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 |