[pango] layout: Never return NULL from pango_layout_get_text()



commit 114d5bfe9d54d1efabc233312d2c23267cf16f59
Author: Benjamin Otte <otte redhat com>
Date:   Mon Sep 9 17:12:50 2013 +0200

    layout: Never return NULL from pango_layout_get_text()
    
    layouts get initialized with text == NULL as an optimization (avoid a
    malloc). But pango_layout_set_text (layout, NULL, 0); will set the text
    to "", so it is impossible to set a NULL text.
    
    Fxies crashers in various places that assume NULL return values never
    happen.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=707659

 pango/pango-layout.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index cff9c51..2b0147f 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -1100,6 +1100,11 @@ pango_layout_get_text (PangoLayout *layout)
 {
   g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
 
+  /* We don't ever want to return NULL as the text.
+   */
+  if (G_UNLIKELY (!layout->text))
+    return "";
+
   return layout->text;
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]