diff options
Diffstat (limited to 'pango')
-rw-r--r-- | pango/pango-layout.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c index 2df1cbbb..a2234189 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -722,11 +722,14 @@ pango_layout_set_text (PangoLayout *layout, const char *text, int length) { - const gchar *end; + const char *end; + char *old_text; g_return_if_fail (layout != NULL); g_return_if_fail (length == 0 || text != NULL); + old_text = layout->text; + if (length != 0) { if (!g_utf8_validate (text, length, &end)) @@ -735,9 +738,6 @@ pango_layout_set_text (PangoLayout *layout, length = end - text; } - if (layout->text) - g_free (layout->text); - /* NULL-terminate the text for convenience. */ layout->text = g_malloc (length + 1); @@ -748,6 +748,9 @@ pango_layout_set_text (PangoLayout *layout, layout->length = length; pango_layout_clear_lines (layout); + + if (old_text) + g_free (old_text); } /** |