summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pango/pango-attributes.c2
-rw-r--r--pango/pango-layout.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/pango/pango-attributes.c b/pango/pango-attributes.c
index 84d24838..97c7aeaf 100644
--- a/pango/pango-attributes.c
+++ b/pango/pango-attributes.c
@@ -1992,7 +1992,7 @@ pango_attr_list_equal (PangoAttrList *list,
gboolean
_pango_attr_list_has_attributes (const PangoAttrList *list)
{
- return (list->attributes != NULL);
+ return list && (list->attributes != NULL);
}
G_DEFINE_BOXED_TYPE (PangoAttrIterator,
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 11e14418..7824a3ce 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -685,9 +685,15 @@ pango_layout_set_attributes (PangoLayout *layout,
g_return_if_fail (layout != NULL);
+ /* Both empty */
if (!attrs && !layout->attrs)
return;
+ /* Also both empty */
+ if (!_pango_attr_list_has_attributes (layout->attrs) &&
+ !_pango_attr_list_has_attributes (attrs))
+ return;
+
old_attrs = layout->attrs;
/* We always clear lines such that this function can be called