diff options
author | Owen Taylor <otaylor@redhat.com> | 2005-07-26 18:07:59 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2005-07-26 18:07:59 +0000 |
commit | 8d45583fa1f13d77feb5d96abeae59d21ad5fe65 (patch) | |
tree | 17eeeaf4847625186a334393821864f61738c14c /pango/ellipsize.c | |
parent | 5e762f5014222d71358a28474e7f53dfed609112 (diff) | |
download | pango-8d45583fa1f13d77feb5d96abeae59d21ad5fe65.tar.gz |
Fixes for signed/unsigned in PangoAttrIterator ((#166700, Morten Welinder)
2005-07-26 Owen Taylor <otaylor@redhat.com>
Fixes for signed/unsigned in PangoAttrIterator ((#166700,
Morten Welinder)
* pango/pango-attributes.c (pango_attr_iterator_range):
Clamp results to G_MAXINT to avoid negative numbers from
signed/unsigned conversions.
* pango/pango-attributes.c: Make PangoAttrIterator
start_index/end_index unsigned to match PangoAttribute.
Change various local variables to match.
* pango/ellipsize.c (advance_iterator_to)
pango/pango-attributes.c (pango_attr_iterator_range)
pango/pango-glyph-item.c (pango_glyph_item_apply_attrs)
pango/pango-layout.c (pango_layout_line_get_empty_extents):
Always check the return value from pango_attr_iterator()
to deal with potential infinite loops when trying to
advance to position G_MAXINT.
* pango/pango-layout.c (pango_layout_set_text): Handle
the case where the text passed in is longer than
than G_MAXINT and length < 0.
* pango/pango-attributes.c (pango_attr_list_splice): Be
careful about integer overflow - clamp addition.
(#163246, Morten Welinder)
Diffstat (limited to 'pango/ellipsize.c')
-rw-r--r-- | pango/ellipsize.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/pango/ellipsize.c b/pango/ellipsize.c index 39649461..8a7b190a 100644 --- a/pango/ellipsize.c +++ b/pango/ellipsize.c @@ -386,14 +386,13 @@ advance_iterator_to (PangoAttrIterator *iter, { int start, end; - while (TRUE) + do { pango_attr_iterator_range (iter, &start, &end); if (end > new_index) break; - - pango_attr_iterator_next (iter); } + while (pango_attr_iterator_next (iter)); } /* Updates the shaping of the ellipsis if necessary when we move the |