[clutter] text: Clean up the set_font_description_internal() semantics
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter] text: Clean up the set_font_description_internal() semantics
- Date: Mon, 4 Mar 2013 23:09:54 +0000 (UTC)
commit 315a73edf5610ce4ee16a825b62a5b6ee669cfed
Author: Emmanuele Bassi <ebassi gnome org>
Date: Mon Mar 4 13:02:44 2013 +0000
text: Clean up the set_font_description_internal() semantics
The current semantics are ridiculous, and clearly a case of (mistaken)
premature optimization. All setters should copy, not transfer ownership.
https://bugzilla.gnome.org/show_bug.cgi?id=695119
clutter/clutter-text.c | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
---
diff --git a/clutter/clutter-text.c b/clutter/clutter-text.c
index 9f50263..8323cc0 100644
--- a/clutter/clutter-text.c
+++ b/clutter/clutter-text.c
@@ -555,8 +555,7 @@ clutter_text_dirty_cache (ClutterText *text)
* @desc: a #PangoFontDescription
*
* Sets @desc as the font description to be used by the #ClutterText
- * actor. The font description ownership is transferred to @self so
- * the #PangoFontDescription must not be freed after this function
+ * actor. The #PangoFontDescription is copied.
*
* This function will also set the :font-name field as a side-effect
*
@@ -576,7 +575,7 @@ clutter_text_set_font_description_internal (ClutterText *self,
if (priv->font_desc != NULL)
pango_font_description_free (priv->font_desc);
- priv->font_desc = desc;
+ priv->font_desc = pango_font_description_copy (desc);
/* update the font name string we use */
g_free (priv->font_name);
@@ -618,6 +617,7 @@ clutter_text_settings_changed_cb (ClutterText *text)
font_desc = pango_font_description_from_string (font_name);
clutter_text_set_font_description_internal (text, font_desc);
+ pango_font_description_free (font_desc);
g_free (font_name);
}
@@ -4917,12 +4917,9 @@ void
clutter_text_set_font_description (ClutterText *self,
PangoFontDescription *font_desc)
{
- PangoFontDescription *copy;
-
g_return_if_fail (CLUTTER_IS_TEXT (self));
- copy = pango_font_description_copy (font_desc);
- clutter_text_set_font_description_internal (self, copy);
+ clutter_text_set_font_description_internal (self, font_desc);
}
/**
@@ -5020,7 +5017,7 @@ clutter_text_set_font_name (ClutterText *self,
goto out;
desc = pango_font_description_from_string (font_name);
- if (!desc)
+ if (desc == NULL)
{
g_warning ("Attempting to create a PangoFontDescription for "
"font name '%s', but failed.",
@@ -5034,6 +5031,8 @@ clutter_text_set_font_name (ClutterText *self,
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_FONT_NAME]);
+ pango_font_description_free (desc);
+
out:
if (is_default_font)
g_free ((gchar *) font_name);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]