diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-06-08 17:41:58 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-06-08 17:41:58 +0000 |
commit | 8175bfe7ebbdd885cfdab857783aa2e5f7c136e4 (patch) | |
tree | 7d358946ca78f9fd242aeed26c44a1fbb2e47982 /pango/pango-glyph-item.c | |
parent | 1fb9e50c73bb8c6389c7eaa9adb2eee13642d2ff (diff) | |
parent | 4d8e71471984fb0fc147d1a64695ad5f18576fde (diff) | |
download | pango-8175bfe7ebbdd885cfdab857783aa2e5f7c136e4.tar.gz |
Merge branch 'wip/baedert/for-master2' into 'master'
Wip/baedert/for master2
See merge request GNOME/pango!190
Diffstat (limited to 'pango/pango-glyph-item.c')
-rw-r--r-- | pango/pango-glyph-item.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/pango/pango-glyph-item.c b/pango/pango-glyph-item.c index eb880608..326ae37f 100644 --- a/pango/pango-glyph-item.c +++ b/pango/pango-glyph-item.c @@ -24,6 +24,7 @@ #include "pango-glyph-item.h" #include "pango-impl-utils.h" +#include "pango-attributes-private.h" #define LTR(glyph_item) (((glyph_item)->item->analysis.level % 2) == 0) @@ -584,7 +585,7 @@ pango_glyph_item_apply_attrs (PangoGlyphItem *glyph_item, const char *text, PangoAttrList *list) { - PangoAttrIterator *iter = pango_attr_list_get_iterator (list); + PangoAttrIterator iter; GSList *result = NULL; ApplyAttrsState state; gboolean start_new_segment = FALSE; @@ -607,15 +608,16 @@ pango_glyph_item_apply_attrs (PangoGlyphItem *glyph_item, /* Advance the attr iterator to the start of the item */ + _pango_attr_list_get_iterator (list, &iter); do { - pango_attr_iterator_range (iter, &range_start, &range_end); + pango_attr_iterator_range (&iter, &range_start, &range_end); if (range_end > glyph_item->item->offset) break; } - while (pango_attr_iterator_next (iter)); + while (pango_attr_iterator_next (&iter)); - state.segment_attrs = pango_attr_iterator_get_attrs (iter); + state.segment_attrs = pango_attr_iterator_get_attrs (&iter); is_ellipsis = (glyph_item->item->analysis.flags & PANGO_ANALYSIS_FLAG_IS_ELLIPSIS) != 0; @@ -644,7 +646,7 @@ pango_glyph_item_apply_attrs (PangoGlyphItem *glyph_item, { result = g_slist_prepend (result, split_before_cluster_start (&state)); - state.segment_attrs = pango_attr_iterator_get_attrs (iter); + state.segment_attrs = pango_attr_iterator_get_attrs (&iter); } start_new_segment = FALSE; @@ -663,8 +665,8 @@ pango_glyph_item_apply_attrs (PangoGlyphItem *glyph_item, */ start_new_segment = TRUE; - have_next = pango_attr_iterator_next (iter); - pango_attr_iterator_range (iter, &range_start, &range_end); + have_next = pango_attr_iterator_next (&iter); + pango_attr_iterator_range (&iter, &range_start, &range_end); if (range_start >= state.iter.end_index) /* New range doesn't intersect this cluster */ { @@ -688,7 +690,7 @@ pango_glyph_item_apply_attrs (PangoGlyphItem *glyph_item, } state.segment_attrs = g_slist_concat (state.segment_attrs, - pango_attr_iterator_get_attrs (iter)); + pango_attr_iterator_get_attrs (&iter)); } while (have_next); } @@ -702,7 +704,7 @@ pango_glyph_item_apply_attrs (PangoGlyphItem *glyph_item, if (LTR (glyph_item)) result = g_slist_reverse (result); - pango_attr_iterator_destroy (iter); + _pango_attr_iterator_destroy (&iter); return result; } |