From a2b560ab7d7cba57a04a3e9d30ab9ecd50c473e3 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Tue, 25 Sep 2012 11:40:05 -0700 Subject: Port PangoCoreTextFont to use GWeakRef For its PangoCoreTextFontMap* member. --- pango/pangocoretext.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pango/pangocoretext.c b/pango/pangocoretext.c index ee743935..36bcd825 100644 --- a/pango/pangocoretext.c +++ b/pango/pangocoretext.c @@ -45,10 +45,12 @@ pango_core_text_font_finalize (GObject *object) { PangoCoreTextFont *ctfont = (PangoCoreTextFont *)object; PangoCoreTextFontPrivate *priv = ctfont->priv; - - g_assert (priv->fontmap != NULL); - g_object_remove_weak_pointer (G_OBJECT (priv->fontmap), (gpointer *) (gpointer) &priv->fontmap); - priv->fontmap = NULL; + PangoCoreTextFontMap* fontmap = g_weak_ref_get ((GWeakRef *)&priv->fontmap); + if (fontmap) + { + g_weak_ref_clear ((GWeakRef *)&priv->fontmap); + g_object_unref (fontmap); + } if (priv->coverage) pango_coverage_unref (priv->coverage); @@ -140,7 +142,7 @@ static PangoFontMap * pango_core_text_font_get_font_map (PangoFont *font) { PangoCoreTextFont *ctfont = (PangoCoreTextFont *)font; - + /* FIXME: Not thread safe! */ return ctfont->priv->fontmap; } @@ -174,9 +176,8 @@ _pango_core_text_font_set_font_map (PangoCoreTextFont *font, { PangoCoreTextFontPrivate *priv = font->priv; - g_assert (priv->fontmap == NULL); - priv->fontmap = (PangoFontMap *) fontmap; - g_object_add_weak_pointer (G_OBJECT (priv->fontmap), (gpointer *) (gpointer) &priv->fontmap); + g_return_if_fail (priv->fontmap == NULL); + g_weak_ref_set((GWeakRef *) &priv->fontmap, fontmap); } void -- cgit v1.2.1