diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2008-08-22 07:20:04 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2008-08-22 07:20:04 +0000 |
commit | 3b4ce828245be692017fd1fb498952e3c4238074 (patch) | |
tree | c5e5a261d23425d336f8a5aaae3b23166e3cec01 /pango/pangowin32-fontcache.c | |
parent | d8b4b188b676b9cdb3f33a599fc2a77051c6938c (diff) | |
download | pango-3b4ce828245be692017fd1fb498952e3c4238074.tar.gz |
Use atomic reference counting.
2008-08-22 Behdad Esfahbod <behdad@gnome.org>
* pango/fonts.c (pango_font_metrics_ref),
(pango_font_metrics_unref):
* pango/pango-attributes.c (pango_attr_list_ref),
(pango_attr_list_unref):
* pango/pango-coverage.c (pango_coverage_ref),
(pango_coverage_unref):
* pango/pango-layout.c (pango_layout_line_ref),
(pango_layout_line_unref):
* pango/pangowin32-fontcache.c (cache_entry_unref),
(pango_win32_font_cache_loadw):
* pango/pangox-fontcache.c (cache_entry_unref),
(pango_x_font_cache_load):
Use atomic reference counting.
Pango may not be thread safe yet, but fixing it little by little
is easier than doing all in one round.
svn path=/trunk/; revision=2705
Diffstat (limited to 'pango/pangowin32-fontcache.c')
-rw-r--r-- | pango/pangowin32-fontcache.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/pango/pangowin32-fontcache.c b/pango/pangowin32-fontcache.c index b6934d49..577e3b85 100644 --- a/pango/pangowin32-fontcache.c +++ b/pango/pangowin32-fontcache.c @@ -160,8 +160,7 @@ static void cache_entry_unref (PangoWin32FontCache *cache, CacheEntry *entry) { - entry->ref_count--; - if (entry->ref_count == 0) + if (g_atomic_int_dec_and_test (&entry->ref_count)) { PING (("removing cache entry %p", entry->hfont)); @@ -233,7 +232,7 @@ pango_win32_font_cache_loadw (PangoWin32FontCache *cache, if (entry) { - entry->ref_count++; + g_atomic_int_inc (entry->ref_count); PING (("increased refcount for cache entry %p: %d", entry->hfont, entry->ref_count)); } else @@ -384,7 +383,7 @@ pango_win32_font_cache_loadw (PangoWin32FontCache *cache, } else { - entry->ref_count++; + g_atomic_int_inc (entry->ref_count); /* Insert into the mru list */ |