diff options
Diffstat (limited to 'pango/pangowin32.c')
-rw-r--r-- | pango/pangowin32.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/pango/pangowin32.c b/pango/pangowin32.c index 8678ebbc..bb5b9751 100644 --- a/pango/pangowin32.c +++ b/pango/pangowin32.c @@ -818,8 +818,10 @@ pango_win32_font_finalize (GObject *object) { PangoWin32Font *win32font = (PangoWin32Font *)object; PangoWin32FontCache *cache = pango_win32_font_map_get_font_cache (win32font->fontmap); + PangoWin32Font *fontmap; + if (G_UNLIKELY (!cache)) - return NULL; + return; if (win32font->hfont != NULL) pango_win32_font_cache_unload (cache, win32font->hfont); @@ -832,11 +834,9 @@ pango_win32_font_finalize (GObject *object) g_hash_table_destroy (win32font->glyph_info); - if (win32font->fontmap) - { - g_object_remove_weak_pointer (G_OBJECT (win32font->fontmap), (gpointer *) (gpointer) &win32font->fontmap); - win32font->fontmap = NULL; - } + fontmap = g_weak_ref_get ((GWeakRef *) &win32font->fontmap); + if (fontmap) + g_object_unref (fontmap); G_OBJECT_CLASS (_pango_win32_font_parent_class)->finalize (object); } |