diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-0 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-2 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-4 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-6 | 8 | ||||
-rw-r--r-- | ChangeLog.pre-1-8 | 8 | ||||
-rw-r--r-- | pango/modules.c | 5 | ||||
-rw-r--r-- | pango/pango-attributes.c | 4 | ||||
-rw-r--r-- | pango/pango-layout.c | 7 |
10 files changed, 68 insertions, 4 deletions
@@ -1,3 +1,11 @@ +2000-08-07 Elliot Lee <sopwith@redhat.com> + + * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. + * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing + new one. + * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the + infinite loop. + 2000-08-03 Elliot Lee <sopwith@redhat.com> * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. diff --git a/ChangeLog.pre-1-0 b/ChangeLog.pre-1-0 index edcb701e..2d6092b9 100644 --- a/ChangeLog.pre-1-0 +++ b/ChangeLog.pre-1-0 @@ -1,3 +1,11 @@ +2000-08-07 Elliot Lee <sopwith@redhat.com> + + * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. + * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing + new one. + * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the + infinite loop. + 2000-08-03 Elliot Lee <sopwith@redhat.com> * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10 index edcb701e..2d6092b9 100644 --- a/ChangeLog.pre-1-10 +++ b/ChangeLog.pre-1-10 @@ -1,3 +1,11 @@ +2000-08-07 Elliot Lee <sopwith@redhat.com> + + * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. + * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing + new one. + * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the + infinite loop. + 2000-08-03 Elliot Lee <sopwith@redhat.com> * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. diff --git a/ChangeLog.pre-1-2 b/ChangeLog.pre-1-2 index edcb701e..2d6092b9 100644 --- a/ChangeLog.pre-1-2 +++ b/ChangeLog.pre-1-2 @@ -1,3 +1,11 @@ +2000-08-07 Elliot Lee <sopwith@redhat.com> + + * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. + * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing + new one. + * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the + infinite loop. + 2000-08-03 Elliot Lee <sopwith@redhat.com> * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. diff --git a/ChangeLog.pre-1-4 b/ChangeLog.pre-1-4 index edcb701e..2d6092b9 100644 --- a/ChangeLog.pre-1-4 +++ b/ChangeLog.pre-1-4 @@ -1,3 +1,11 @@ +2000-08-07 Elliot Lee <sopwith@redhat.com> + + * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. + * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing + new one. + * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the + infinite loop. + 2000-08-03 Elliot Lee <sopwith@redhat.com> * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6 index edcb701e..2d6092b9 100644 --- a/ChangeLog.pre-1-6 +++ b/ChangeLog.pre-1-6 @@ -1,3 +1,11 @@ +2000-08-07 Elliot Lee <sopwith@redhat.com> + + * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. + * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing + new one. + * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the + infinite loop. + 2000-08-03 Elliot Lee <sopwith@redhat.com> * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8 index edcb701e..2d6092b9 100644 --- a/ChangeLog.pre-1-8 +++ b/ChangeLog.pre-1-8 @@ -1,3 +1,11 @@ +2000-08-07 Elliot Lee <sopwith@redhat.com> + + * pango/modules.c: If the first pango_skip_space fails, remember to free enginepair before continuing. + * pango/pango-layout.c (pango_layout_set_attributes): unref old attr list after reffing + new one. + * pango/pango-attributes.c (pango_attr_list_insert_internal): Proper fix from Owen for the + infinite loop. + 2000-08-03 Elliot Lee <sopwith@redhat.com> * pango/modules.c: Fix segfault when tmp_list has no 'prev' pointer. diff --git a/pango/modules.c b/pango/modules.c index d7d3b838..5d3f9cb9 100644 --- a/pango/modules.c +++ b/pango/modules.c @@ -217,7 +217,10 @@ process_module_file (FILE *module_file) p = line_buf->str; if (!pango_skip_space (&p)) - continue; + { + g_free (pair); + continue; + } /* Break line into words on whitespace */ i = 0; diff --git a/pango/pango-attributes.c b/pango/pango-attributes.c index a081235d..d2349eac 100644 --- a/pango/pango-attributes.c +++ b/pango/pango-attributes.c @@ -740,7 +740,7 @@ pango_attr_list_insert_internal (PangoAttrList *list, { prev = NULL; tmp_list = list->attributes; - while (tmp_list) + while (1) { PangoAttribute *tmp_attr = tmp_list->data; @@ -758,6 +758,8 @@ pango_attr_list_insert_internal (PangoAttrList *list, if (!tmp_list) list->attributes_tail = link; + + break; } prev = tmp_list; diff --git a/pango/pango-layout.c b/pango/pango-layout.c index 84acc12e..7025083f 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -333,14 +333,17 @@ void pango_layout_set_attributes (PangoLayout *layout, PangoAttrList *attrs) { + PangoAttrList *old_attrs; g_return_if_fail (layout != NULL); - if (layout->attrs) - pango_attr_list_unref (layout->attrs); + old_attrs = layout->attrs; layout->attrs = attrs; pango_attr_list_ref (layout->attrs); pango_layout_clear_lines (layout); + + if (old_attrs) + pango_attr_list_unref (layout->attrs); } /** |