[pango/pango2: 35/37] Make PangoGlyphItem private




commit 797b692f1045cd4bb22717e1e82326ae5bf6fb57
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jun 20 23:09:14 2022 -0700

    Make PangoGlyphItem private

 pango/ellipsize.c                                  |   3 +-
 pango/glyphstring.c                                |   3 +-
 pango/meson.build                                  |   2 -
 ...ngo-glyph-item.h => pango-glyph-item-private.h} |   0
 pango/pango-glyph-item.c                           |   4 +-
 ...ngo-glyph-iter.h => pango-glyph-iter-private.h} |   2 +-
 pango/pango-line-iter.h                            |   1 -
 pango/pango-line-private.h                         |   2 +-
 pango/pango-line.c                                 |   1 +
 pango/pango-renderer.c                             |  65 +--
 pango/pango-renderer.h                             |   9 +-
 pango/pango-run-private.h                          |   2 +-
 pango/pango.h                                      |   2 -
 pango/pangocairo-render.c                          | 519 ++++++++++-----------
 pango/pangocairo-render.h                          |   4 +-
 tests/testiter.c                                   |  61 ---
 16 files changed, 307 insertions(+), 373 deletions(-)
---
diff --git a/pango/ellipsize.c b/pango/ellipsize.c
index 97d78c74..d9f2d994 100644
--- a/pango/ellipsize.c
+++ b/pango/ellipsize.c
@@ -23,7 +23,8 @@
 #include <string.h>
 
 #include "pango-item-private.h"
-#include "pango-glyph-item.h"
+#include "pango-glyph-item-private.h"
+#include "pango-glyph-iter-private.h"
 #include "pango-font-private.h"
 #include "pango-attributes-private.h"
 #include "pango-attr-private.h"
diff --git a/pango/glyphstring.c b/pango/glyphstring.c
index 00a93c19..70331d59 100644
--- a/pango/glyphstring.c
+++ b/pango/glyphstring.c
@@ -24,6 +24,7 @@
 #include "pango-glyph.h"
 #include "pango-font.h"
 #include "pango-item-private.h"
+#include "pango-glyph-item-private.h"
 #include "pango-impl-utils.h"
 
 #include <hb-ot.h>
@@ -325,8 +326,6 @@ pango_glyph_string_get_width (PangoGlyphString *glyphs)
  *
  * When multiple characters compose a single cluster, the width of the
  * entire cluster is divided equally among the characters.
- *
- * See also [method@Pango.GlyphItem.get_logical_widths].
  */
 void
 pango_glyph_string_get_logical_widths (PangoGlyphString *glyphs,
diff --git a/pango/meson.build b/pango/meson.build
index 7e89d46d..8ff603cb 100644
--- a/pango/meson.build
+++ b/pango/meson.build
@@ -69,8 +69,6 @@ pango_headers = [
   'pango-fontset.h',
   'pango-generic-family.h',
   'pango-glyph.h',
-  'pango-glyph-item.h',
-  'pango-glyph-iter.h',
   'pango-gravity.h',
   'pango-item.h',
   'pango-language.h',
diff --git a/pango/pango-glyph-item.h b/pango/pango-glyph-item-private.h
similarity index 100%
rename from pango/pango-glyph-item.h
rename to pango/pango-glyph-item-private.h
diff --git a/pango/pango-glyph-item.c b/pango/pango-glyph-item.c
index 9e4bdb09..553bc5f1 100644
--- a/pango/pango-glyph-item.c
+++ b/pango/pango-glyph-item.c
@@ -22,8 +22,8 @@
 #include "config.h"
 #include <string.h>
 
-#include "pango-glyph-item.h"
-#include "pango-glyph-iter.h"
+#include "pango-glyph-item-private.h"
+#include "pango-glyph-iter-private.h"
 #include "pango-item-private.h"
 #include "pango-impl-utils.h"
 #include "pango-attr-list-private.h"
diff --git a/pango/pango-glyph-iter.h b/pango/pango-glyph-iter-private.h
similarity index 98%
rename from pango/pango-glyph-iter.h
rename to pango/pango-glyph-iter-private.h
index ef0df5fb..c07d7306 100644
--- a/pango/pango-glyph-iter.h
+++ b/pango/pango-glyph-iter-private.h
@@ -19,7 +19,7 @@
 
 #pragma once
 
-#include <pango/pango-glyph-item.h>
+#include <pango/pango-glyph-item-private.h>
 
 G_BEGIN_DECLS
 
diff --git a/pango/pango-line-iter.h b/pango/pango-line-iter.h
index 33efeacf..244f1e21 100644
--- a/pango/pango-line-iter.h
+++ b/pango/pango-line-iter.h
@@ -23,7 +23,6 @@
 
 #include <pango/pango-types.h>
 #include <pango/pango-lines.h>
-#include <pango/pango-glyph-item.h>
 
 G_BEGIN_DECLS
 
diff --git a/pango/pango-line-private.h b/pango/pango-line-private.h
index 058f0a18..deb04e8a 100644
--- a/pango/pango-line-private.h
+++ b/pango/pango-line-private.h
@@ -22,7 +22,7 @@
 #include "pango-line.h"
 #include "pango-break.h"
 #include "pango-attributes.h"
-#include "pango-glyph-item.h"
+#include "pango-glyph-item-private.h"
 
 
 typedef struct _LineData LineData;
diff --git a/pango/pango-line.c b/pango/pango-line.c
index 99828490..0acdd168 100644
--- a/pango/pango-line.c
+++ b/pango/pango-line.c
@@ -9,6 +9,7 @@
 #include "pango-attr-list-private.h"
 #include "pango-attr-iterator-private.h"
 #include "pango-item-private.h"
+#include "pango-glyph-iter-private.h"
 #include "pango-run-private.h"
 #include "pango-font-metrics-private.h"
 
diff --git a/pango/pango-renderer.c b/pango/pango-renderer.c
index f857bd78..03e24bb6 100644
--- a/pango/pango-renderer.c
+++ b/pango/pango-renderer.c
@@ -29,6 +29,7 @@
 #include "pango-run-private.h"
 #include "pango-line-private.h"
 #include "pango-attributes-private.h"
+#include "pango-glyph-item-private.h"
 
 #define N_RENDER_PARTS 5
 
@@ -84,9 +85,9 @@ static void pango_renderer_default_draw_glyphs          (PangoRenderer    *rende
                                                          PangoGlyphString *glyphs,
                                                          int               x,
                                                          int               y);
-static void pango_renderer_default_draw_glyph_item      (PangoRenderer    *renderer,
+static void pango_renderer_default_draw_run             (PangoRenderer    *renderer,
                                                          const char       *text,
-                                                         PangoGlyphItem   *glyph_item,
+                                                         PangoRun         *run,
                                                          int               x,
                                                          int               y);
 static void pango_renderer_default_draw_rectangle       (PangoRenderer    *renderer,
@@ -133,7 +134,7 @@ pango_renderer_class_init (PangoRendererClass *klass)
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
   klass->draw_glyphs = pango_renderer_default_draw_glyphs;
-  klass->draw_glyph_item = pango_renderer_default_draw_glyph_item;
+  klass->draw_run = pango_renderer_default_draw_run;
   klass->draw_rectangle = pango_renderer_default_draw_rectangle;
   klass->draw_error_underline = pango_renderer_default_draw_error_underline;
   klass->prepare_run = pango_renderer_default_prepare_run;
@@ -698,15 +699,15 @@ pango_renderer_draw_runs (PangoRenderer *renderer,
     {
       PangoFontMetrics *metrics;
       PangoRun *run = l->data;
-      PangoGlyphItem *glyph_item = l->data;
-      PangoItem *item = glyph_item->item;
-      PangoGlyphString *glyphs = glyph_item->glyphs;
+      PangoGlyphItem *glyph_item = pango_run_get_glyph_item (run);
+      PangoItem *item = pango_run_get_item (run);
+      PangoGlyphString *glyphs = pango_run_get_glyphs (run);
       PangoRectangle ink_rect, *ink = NULL;
       PangoRectangle logical_rect, *logical = NULL;
       ItemProperties properties;
       int y_off;
 
-      if (glyph_item->item->analysis.flags & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE)
+      if (item->analysis.flags & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE)
         logical = &logical_rect;
 
       pango_renderer_prepare_run (renderer, run);
@@ -779,7 +780,7 @@ pango_renderer_draw_runs (PangoRenderer *renderer,
       if (properties.shape)
         draw_shaped_glyphs (renderer, glyphs, properties.shape, x + x_off, y - y_off);
       else
-        pango_renderer_draw_glyph_item (renderer, text, glyph_item, x + x_off, y - y_off);
+        pango_renderer_draw_run (renderer, text, run, x + x_off, y - y_off);
 
       if (priv->underline != PANGO_LINE_STYLE_NONE ||
           priv->overline != PANGO_LINE_STYLE_NONE ||
@@ -879,28 +880,28 @@ pango_renderer_default_draw_glyphs (PangoRenderer    *renderer,
 }
 
 /**
- * pango_renderer_draw_glyph_item:
+ * pango_renderer_draw_run:
  * @renderer: a `PangoRenderer`
  * @text: (nullable): the UTF-8 text that @glyph_item refers to
- * @glyph_item: a `PangoGlyphItem`
+ * @run: a `PangoRun`
  * @x: X position of left edge of baseline, in user space coordinates
  *   in Pango units
  * @y: Y position of left edge of baseline, in user space coordinates
  *   in Pango units
  *
- * Draws the glyphs in @glyph_item with the specified `PangoRenderer`,
+ * Draws the glyphs in @run with the specified `PangoRenderer`,
  * embedding the text associated with the glyphs in the output if the
  * output format supports it.
  *
  * This is useful for rendering text in PDF.
  *
- * Note that this method does not handle attributes in @glyph_item.
+ * Note that this method does not handle attributes in @run.
  * If you want colors, shapes and lines handled automatically according
  * to those attributes, you need to use [method@Pango.Renderer.draw_line]
  * or [method@Pango.Renderer.draw_lines].
  *
  * Note that @text is the start of the text for layout, which is then
- * indexed by `glyph_item->item->offset`.
+ * indexed by `run->item->offset`.
  *
  * If @text is %NULL, this simply calls [method@Pango.Renderer.draw_glyphs].
  *
@@ -908,18 +909,18 @@ pango_renderer_default_draw_glyphs (PangoRenderer    *renderer,
  * [method@Pango.Renderer.draw_glyphs].
  */
 void
-pango_renderer_draw_glyph_item (PangoRenderer  *renderer,
-                                const char     *text,
-                                PangoGlyphItem *glyph_item,
-                                int             x,
-                                int             y)
+pango_renderer_draw_run (PangoRenderer  *renderer,
+                         const char     *text,
+                         PangoRun       *run,
+                         int             x,
+                         int             y)
 {
   if (!text)
     {
-      pango_renderer_draw_glyphs (renderer,
-                                  glyph_item->item->analysis.font,
-                                  glyph_item->glyphs,
-                                  x, y);
+      PangoItem *item = pango_run_get_item (run);
+      PangoGlyphString *glyphs = pango_run_get_glyphs (run);
+
+      pango_renderer_draw_glyphs (renderer, item->analysis.font, glyphs, x, y);
       return;
     }
 
@@ -927,22 +928,22 @@ pango_renderer_draw_glyph_item (PangoRenderer  *renderer,
 
   pango_renderer_activate (renderer);
 
-  PANGO_RENDERER_GET_CLASS (renderer)->draw_glyph_item (renderer, text, glyph_item, x, y);
+  PANGO_RENDERER_GET_CLASS (renderer)->draw_run (renderer, text, run, x, y);
 
   pango_renderer_deactivate (renderer);
 }
 
 static void
-pango_renderer_default_draw_glyph_item (PangoRenderer  *renderer,
-                                        const char     *text G_GNUC_UNUSED,
-                                        PangoGlyphItem *glyph_item,
-                                        int             x,
-                                        int             y)
+pango_renderer_default_draw_run (PangoRenderer  *renderer,
+                                 const char     *text G_GNUC_UNUSED,
+                                 PangoRun       *run,
+                                 int             x,
+                                 int             y)
 {
-  pango_renderer_draw_glyphs (renderer,
-                              glyph_item->item->analysis.font,
-                              glyph_item->glyphs,
-                              x, y);
+  PangoItem *item = pango_run_get_item (run);
+  PangoGlyphString *glyphs = pango_run_get_glyphs (run);
+
+  pango_renderer_draw_glyphs (renderer, item->analysis.font, glyphs, x, y);
 }
 
 /**
diff --git a/pango/pango-renderer.h b/pango/pango-renderer.h
index 347cebd9..dfde0167 100644
--- a/pango/pango-renderer.h
+++ b/pango/pango-renderer.h
@@ -22,7 +22,6 @@
 #include <pango/pango-layout.h>
 #include <pango/pango-lines.h>
 #include <pango/pango-glyph.h>
-#include <pango/pango-glyph-item.h>
 
 G_BEGIN_DECLS
 
@@ -157,9 +156,9 @@ struct _PangoRendererClass
   void (*prepare_run)          (PangoRenderer    *renderer,
                                 PangoRun         *run);
 
-  void (*draw_glyph_item)      (PangoRenderer    *renderer,
+  void (*draw_run)             (PangoRenderer    *renderer,
                                 const char       *text,
-                                PangoGlyphItem   *glyph_item,
+                                PangoRun         *run,
                                 int               x,
                                 int               y);
 
@@ -190,9 +189,9 @@ void pango_renderer_draw_glyphs          (PangoRenderer    *renderer,
                                           int               x,
                                           int               y);
 PANGO_AVAILABLE_IN_ALL
-void pango_renderer_draw_glyph_item      (PangoRenderer    *renderer,
+void pango_renderer_draw_run             (PangoRenderer    *renderer,
                                           const char       *text,
-                                          PangoGlyphItem   *glyph_item,
+                                          PangoRun         *run,
                                           int               x,
                                           int               y);
 PANGO_AVAILABLE_IN_ALL
diff --git a/pango/pango-run-private.h b/pango/pango-run-private.h
index 08a5d9cd..6fa31db7 100644
--- a/pango/pango-run-private.h
+++ b/pango/pango-run-private.h
@@ -22,7 +22,7 @@
 #include "config.h"
 
 #include "pango-run.h"
-#include "pango-glyph-item.h"
+#include "pango-glyph-item-private.h"
 #include "pango-item-private.h"
 
 
diff --git a/pango/pango.h b/pango/pango.h
index 8b0c36c1..75dc9b83 100644
--- a/pango/pango.h
+++ b/pango/pango.h
@@ -38,8 +38,6 @@
 #include <pango/pango-fontset.h>
 #include <pango/pango-generic-family.h>
 #include <pango/pango-glyph.h>
-#include <pango/pango-glyph-item.h>
-#include <pango/pango-glyph-iter.h>
 #include <pango/pango-gravity.h>
 #include <pango/pango-hbface.h>
 #include <pango/pango-hbfont.h>
diff --git a/pango/pangocairo-render.c b/pango/pangocairo-render.c
index ae21807a..2a76a161 100644
--- a/pango/pangocairo-render.c
+++ b/pango/pangocairo-render.c
@@ -10,7 +10,7 @@
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
@@ -26,7 +26,9 @@
 #include "pango-item-private.h"
 #include "pango-font-private.h"
 #include "pangocairo-private.h"
-#include "pango-glyph-item.h"
+#include "pango-glyph-item-private.h"
+#include "pango-glyph-iter-private.h"
+#include "pango-run-private.h"
 #include "pango-impl-utils.h"
 #include "pango-hbfont-private.h"
 
@@ -59,7 +61,7 @@ G_DEFINE_TYPE (PangoCairoRenderer, pango_cairo_renderer, PANGO_TYPE_RENDERER)
 
 static void
 set_color (PangoCairoRenderer *crenderer,
-          PangoRenderPart     part)
+           PangoRenderPart     part)
 {
   PangoColor *color = pango_renderer_get_color ((PangoRenderer *) (crenderer), part);
   double red, green, blue, alpha;
@@ -95,12 +97,12 @@ set_color (PangoCairoRenderer *crenderer,
 /* note: modifies crenderer->cr without doing cairo_save/restore() */
 static void
 _pango_cairo_renderer_draw_frame (PangoCairoRenderer *crenderer,
-                                 double              x,
-                                 double              y,
-                                 double              width,
-                                 double              height,
-                                 double              line_width,
-                                 gboolean            invalid)
+                                  double              x,
+                                  double              y,
+                                  double              width,
+                                  double              height,
+                                  double              line_width,
+                                  gboolean            invalid)
 {
   cairo_t *cr = crenderer->cr;
 
@@ -121,61 +123,61 @@ _pango_cairo_renderer_draw_frame (PangoCairoRenderer *crenderer,
       /* inner */
       if (invalid)
         {
-         /* delicacies of computing the joint... this is REALLY slow */
-
-         double alpha, tan_alpha2, cos_alpha;
-         double sx, sy;
-
-         alpha = atan2 (height, width);
-
-         tan_alpha2 = tan (alpha * .5);
-         if (tan_alpha2 < 1e-5 || (sx = d2 / tan_alpha2, 2. * sx > width - d))
-           sx = (width - d) * .5;
-
-         cos_alpha = cos (alpha);
-         if (cos_alpha < 1e-5 || (sy = d2 / cos_alpha, 2. * sy > height - d))
-           sy = (height - d) * .5;
-
-         /* top triangle */
-         cairo_new_sub_path (cr);
-         cairo_line_to (cr, x+width-sx, y+d2);
-         cairo_line_to (cr, x+sx, y+d2);
-         cairo_line_to (cr, x+.5*width, y+.5*height-sy);
-         cairo_close_path (cr);
-
-         /* bottom triangle */
-         cairo_new_sub_path (cr);
-         cairo_line_to (cr, x+width-sx, y+height-d2);
-         cairo_line_to (cr, x+.5*width, y+.5*height+sy);
-         cairo_line_to (cr, x+sx, y+height-d2);
-         cairo_close_path (cr);
-
-
-         alpha = G_PI_2 - alpha;
-         tan_alpha2 = tan (alpha * .5);
-         if (tan_alpha2 < 1e-5 || (sy = d2 / tan_alpha2, 2. * sy > height - d))
-           sy = (height - d) * .5;
-
-         cos_alpha = cos (alpha);
-         if (cos_alpha < 1e-5 || (sx = d2 / cos_alpha, 2. * sx > width - d))
-           sx = (width - d) * .5;
-
-         /* left triangle */
-         cairo_new_sub_path (cr);
-         cairo_line_to (cr, x+d2, y+sy);
-         cairo_line_to (cr, x+d2, y+height-sy);
-         cairo_line_to (cr, x+.5*width-sx, y+.5*height);
-         cairo_close_path (cr);
-
-         /* right triangle */
-         cairo_new_sub_path (cr);
-         cairo_line_to (cr, x+width-d2, y+sy);
-         cairo_line_to (cr, x+.5*width+sx, y+.5*height);
-         cairo_line_to (cr, x+width-d2, y+height-sy);
-         cairo_close_path (cr);
-       }
+          /* delicacies of computing the joint... this is REALLY slow */
+
+          double alpha, tan_alpha2, cos_alpha;
+          double sx, sy;
+
+          alpha = atan2 (height, width);
+
+          tan_alpha2 = tan (alpha * .5);
+          if (tan_alpha2 < 1e-5 || (sx = d2 / tan_alpha2, 2. * sx > width - d))
+            sx = (width - d) * .5;
+
+          cos_alpha = cos (alpha);
+          if (cos_alpha < 1e-5 || (sy = d2 / cos_alpha, 2. * sy > height - d))
+            sy = (height - d) * .5;
+
+          /* top triangle */
+          cairo_new_sub_path (cr);
+          cairo_line_to (cr, x+width-sx, y+d2);
+          cairo_line_to (cr, x+sx, y+d2);
+          cairo_line_to (cr, x+.5*width, y+.5*height-sy);
+          cairo_close_path (cr);
+
+          /* bottom triangle */
+          cairo_new_sub_path (cr);
+          cairo_line_to (cr, x+width-sx, y+height-d2);
+          cairo_line_to (cr, x+.5*width, y+.5*height+sy);
+          cairo_line_to (cr, x+sx, y+height-d2);
+          cairo_close_path (cr);
+
+
+          alpha = G_PI_2 - alpha;
+          tan_alpha2 = tan (alpha * .5);
+          if (tan_alpha2 < 1e-5 || (sy = d2 / tan_alpha2, 2. * sy > height - d))
+            sy = (height - d) * .5;
+
+          cos_alpha = cos (alpha);
+          if (cos_alpha < 1e-5 || (sx = d2 / cos_alpha, 2. * sx > width - d))
+            sx = (width - d) * .5;
+
+          /* left triangle */
+          cairo_new_sub_path (cr);
+          cairo_line_to (cr, x+d2, y+sy);
+          cairo_line_to (cr, x+d2, y+height-sy);
+          cairo_line_to (cr, x+.5*width-sx, y+.5*height);
+          cairo_close_path (cr);
+
+          /* right triangle */
+          cairo_new_sub_path (cr);
+          cairo_line_to (cr, x+width-d2, y+sy);
+          cairo_line_to (cr, x+.5*width+sx, y+.5*height);
+          cairo_line_to (cr, x+width-d2, y+height-sy);
+          cairo_close_path (cr);
+        }
       else
-       cairo_rectangle (cr, x+width-d2, y+d2, - (width-d), height-d);
+        cairo_rectangle (cr, x+width-d2, y+d2, - (width-d), height-d);
     }
   else
     {
@@ -183,18 +185,18 @@ _pango_cairo_renderer_draw_frame (PangoCairoRenderer *crenderer,
 
       if (invalid)
         {
-         /* draw an X */
+          /* draw an X */
 
-         cairo_new_sub_path (cr);
-         cairo_move_to (cr, x, y);
-         cairo_rel_line_to (cr, width, height);
+          cairo_new_sub_path (cr);
+          cairo_move_to (cr, x, y);
+          cairo_rel_line_to (cr, width, height);
 
-         cairo_new_sub_path (cr);
-         cairo_move_to (cr, x + width, y);
-         cairo_rel_line_to (cr, -width, height);
+          cairo_new_sub_path (cr);
+          cairo_move_to (cr, x + width, y);
+          cairo_rel_line_to (cr, -width, height);
 
-         cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
-       }
+          cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
+        }
 
       cairo_set_line_width (cr, line_width);
       cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
@@ -205,30 +207,30 @@ _pango_cairo_renderer_draw_frame (PangoCairoRenderer *crenderer,
 
 static void
 _pango_cairo_renderer_draw_box_glyph (PangoCairoRenderer *crenderer,
-                                     PangoGlyphInfo     *gi,
-                                     double              cx,
-                                     double              cy,
-                                     gboolean            invalid)
+                                      PangoGlyphInfo     *gi,
+                                      double              cx,
+                                      double              cy,
+                                      gboolean            invalid)
 {
   cairo_save (crenderer->cr);
 
   _pango_cairo_renderer_draw_frame (crenderer,
-                                   cx + 1.5,
-                                   cy + 1.5 - PANGO_UNKNOWN_GLYPH_HEIGHT,
-                                   (double)gi->geometry.width / PANGO_SCALE - 3.0,
-                                   PANGO_UNKNOWN_GLYPH_HEIGHT - 3.0,
-                                   1.0,
-                                   invalid);
+                                    cx + 1.5,
+                                    cy + 1.5 - PANGO_UNKNOWN_GLYPH_HEIGHT,
+                                    (double)gi->geometry.width / PANGO_SCALE - 3.0,
+                                    PANGO_UNKNOWN_GLYPH_HEIGHT - 3.0,
+                                    1.0,
+                                    invalid);
 
   cairo_restore (crenderer->cr);
 }
 
 static void
 _pango_cairo_renderer_draw_unknown_glyph (PangoCairoRenderer *crenderer,
-                                         PangoFont          *font,
-                                         PangoGlyphInfo     *gi,
-                                         double              cx,
-                                         double              cy)
+                                          PangoFont          *font,
+                                          PangoGlyphInfo     *gi,
+                                          double              cx,
+                                          double              cy)
 {
   char buf[7];
   double x0, y0;
@@ -358,12 +360,12 @@ _pango_cairo_renderer_draw_unknown_glyph (PangoCairoRenderer *crenderer,
   lsb = floor (lsb / hbi->pad_x) * hbi->pad_x;
 
   _pango_cairo_renderer_draw_frame (crenderer,
-                                   cx + lsb + .5 * hbi->pad_x,
-                                   cy + hbi->box_descent - hbi->box_height + hbi->pad_y * 0.5,
-                                   width - hbi->pad_x,
-                                   (hbi->box_height - hbi->pad_y),
-                                   hbi->line_width,
-                                   invalid_input);
+                                    cx + lsb + .5 * hbi->pad_x,
+                                    cy + hbi->box_descent - hbi->box_height + hbi->pad_y * 0.5,
+                                    width - hbi->pad_x,
+                                    (hbi->box_height - hbi->pad_y),
+                                    hbi->line_width,
+                                    invalid_input);
 
   if (invalid_input)
     goto done;
@@ -375,21 +377,21 @@ _pango_cairo_renderer_draw_unknown_glyph (PangoCairoRenderer *crenderer,
     {
       double y = y0 - (rows - 1 - row) * (hbi->digit_height + hbi->pad_y);
       for (col = 0; col < cols; col++, p++)
-       {
-         double x = x0 + col * (hbi->digit_width + hbi->pad_x);
+        {
+          double x = x0 + col * (hbi->digit_width + hbi->pad_x);
 
           if (!p)
             goto done;
 
-         cairo_move_to (crenderer->cr, x, y);
+          cairo_move_to (crenderer->cr, x, y);
 
           hexbox_string[0] = p[0];
 
-         if (crenderer->do_path)
-             cairo_text_path (crenderer->cr, hexbox_string);
-         else
-             cairo_show_text (crenderer->cr, hexbox_string);
-       }
+          if (crenderer->do_path)
+              cairo_text_path (crenderer->cr, hexbox_string);
+          else
+              cairo_show_text (crenderer->cr, hexbox_string);
+        }
     }
 
 done:
@@ -404,15 +406,15 @@ done:
 
 static void
 pango_cairo_renderer_show_text_glyphs (PangoRenderer        *renderer,
-                                      const char           *text,
-                                      int                   text_len,
-                                      PangoGlyphString     *glyphs,
-                                      cairo_text_cluster_t *clusters,
-                                      int                   num_clusters,
-                                      gboolean              backward,
-                                      PangoFont            *font,
-                                      int                   x,
-                                      int                   y)
+                                       const char           *text,
+                                       int                   text_len,
+                                       PangoGlyphString     *glyphs,
+                                       cairo_text_cluster_t *clusters,
+                                       int                   num_clusters,
+                                       gboolean              backward,
+                                       PangoFont            *font,
+                                       int                   x,
+                                       int                   y)
 {
   PangoCairoRenderer *crenderer = (PangoCairoRenderer *) (renderer);
 
@@ -430,20 +432,20 @@ pango_cairo_renderer_show_text_glyphs (PangoRenderer        *renderer,
   if (!_pango_cairo_font_install (font, crenderer->cr))
     {
       for (i = 0; i < glyphs->num_glyphs; i++)
-       {
-         PangoGlyphInfo *gi = &glyphs->glyphs[i];
+        {
+          PangoGlyphInfo *gi = &glyphs->glyphs[i];
 
-         if (gi->glyph != PANGO_GLYPH_EMPTY)
-           {
-             double cx = base_x + (double)(x_position + gi->geometry.x_offset) / PANGO_SCALE;
-             double cy = gi->geometry.y_offset == 0 ?
-                         base_y :
-                         base_y + (double)(gi->geometry.y_offset) / PANGO_SCALE;
+          if (gi->glyph != PANGO_GLYPH_EMPTY)
+            {
+              double cx = base_x + (double)(x_position + gi->geometry.x_offset) / PANGO_SCALE;
+              double cy = gi->geometry.y_offset == 0 ?
+                          base_y :
+                          base_y + (double)(gi->geometry.y_offset) / PANGO_SCALE;
 
-             _pango_cairo_renderer_draw_unknown_glyph (crenderer, font, gi, cx, cy);
-           }
-         x_position += gi->geometry.width;
-       }
+              _pango_cairo_renderer_draw_unknown_glyph (crenderer, font, gi, cx, cy);
+            }
+          x_position += gi->geometry.width;
+        }
 
       goto done;
     }
@@ -459,27 +461,27 @@ pango_cairo_renderer_show_text_glyphs (PangoRenderer        *renderer,
       PangoGlyphInfo *gi = &glyphs->glyphs[i];
 
       if (gi->glyph != PANGO_GLYPH_EMPTY)
-       {
-         double cx = base_x + (double)(x_position + gi->geometry.x_offset) / PANGO_SCALE;
-         double cy = gi->geometry.y_offset == 0 ?
-                     base_y :
-                     base_y + (double)(gi->geometry.y_offset) / PANGO_SCALE;
+        {
+          double cx = base_x + (double)(x_position + gi->geometry.x_offset) / PANGO_SCALE;
+          double cy = gi->geometry.y_offset == 0 ?
+                      base_y :
+                      base_y + (double)(gi->geometry.y_offset) / PANGO_SCALE;
 
-         if (gi->glyph & PANGO_GLYPH_UNKNOWN_FLAG)
+          if (gi->glyph & PANGO_GLYPH_UNKNOWN_FLAG)
             {
               if (gi->glyph == (0x20 | PANGO_GLYPH_UNKNOWN_FLAG))
                 ; /* no hex boxes for space, please */
               else
-               _pango_cairo_renderer_draw_unknown_glyph (crenderer, font, gi, cx, cy);
+                _pango_cairo_renderer_draw_unknown_glyph (crenderer, font, gi, cx, cy);
             }
-         else
-           {
-             cairo_glyphs[count].index = gi->glyph;
-             cairo_glyphs[count].x = cx;
-             cairo_glyphs[count].y = cy;
-             count++;
-           }
-       }
+          else
+            {
+              cairo_glyphs[count].index = gi->glyph;
+              cairo_glyphs[count].x = cx;
+              cairo_glyphs[count].y = cy;
+              count++;
+            }
+        }
       x_position += gi->geometry.width;
     }
 
@@ -488,10 +490,10 @@ pango_cairo_renderer_show_text_glyphs (PangoRenderer        *renderer,
   else
     if (G_UNLIKELY (clusters))
       cairo_show_text_glyphs (crenderer->cr,
-                             text, text_len,
-                             cairo_glyphs, count,
-                             clusters, num_clusters,
-                             backward ? CAIRO_TEXT_CLUSTER_FLAG_BACKWARD : 0);
+                              text, text_len,
+                              cairo_glyphs, count,
+                              clusters, num_clusters,
+                              backward ? CAIRO_TEXT_CLUSTER_FLAG_BACKWARD : 0);
     else
       cairo_show_glyphs (crenderer->cr, cairo_glyphs, count);
 
@@ -504,34 +506,34 @@ done:
 
 static void
 pango_cairo_renderer_draw_glyphs (PangoRenderer     *renderer,
-                                 PangoFont         *font,
-                                 PangoGlyphString  *glyphs,
-                                 int                x,
-                                 int                y)
+                                  PangoFont         *font,
+                                  PangoGlyphString  *glyphs,
+                                  int                x,
+                                  int                y)
 {
   pango_cairo_renderer_show_text_glyphs (renderer,
-                                        NULL, 0,
-                                        glyphs,
-                                        NULL, 0,
-                                        FALSE,
-                                        font,
-                                        x, y);
+                                         NULL, 0,
+                                         glyphs,
+                                         NULL, 0,
+                                         FALSE,
+                                         font,
+                                         x, y);
 }
 
 static void
-pango_cairo_renderer_draw_glyph_item (PangoRenderer     *renderer,
-                                     const char        *text,
-                                     PangoGlyphItem    *glyph_item,
-                                     int                x,
-                                     int                y)
+pango_cairo_renderer_draw_run (PangoRenderer     *renderer,
+                               const char        *text,
+                               PangoRun          *run,
+                               int                x,
+                               int                y)
 {
   PangoCairoRenderer *crenderer = (PangoCairoRenderer *) (renderer);
-  PangoFont          *font      = glyph_item->item->analysis.font;
-  PangoGlyphString   *glyphs    = glyph_item->glyphs;
-  PangoItem          *item      = glyph_item->item;
-  gboolean            backward  = (item->analysis.level & 1) != 0;
-
-  PangoGlyphItemIter   iter;
+  PangoItem *item = pango_run_get_item (run);
+  PangoGlyphString *glyphs = pango_run_get_glyphs (run);
+  PangoFont *font = item->analysis.font;
+  gboolean backward  = (item->analysis.level & 1) != 0;
+  PangoGlyphItem *glyph_item = pango_run_get_glyph_item (run);
+  PangoGlyphItemIter iter;
   cairo_text_cluster_t *cairo_clusters;
   cairo_text_cluster_t stack_clusters[STACK_ARRAY_LENGTH (cairo_text_cluster_t)];
   int num_clusters;
@@ -539,12 +541,12 @@ pango_cairo_renderer_draw_glyph_item (PangoRenderer     *renderer,
   if (!crenderer->has_show_text_glyphs || crenderer->do_path)
     {
       pango_cairo_renderer_show_text_glyphs (renderer,
-                                            NULL, 0,
-                                            glyphs,
-                                            NULL, 0,
-                                            FALSE,
-                                            font,
-                                            x, y);
+                                             NULL, 0,
+                                             glyphs,
+                                             NULL, 0,
+                                             FALSE,
+                                             font,
+                                             x, y);
       return;
     }
 
@@ -562,22 +564,22 @@ pango_cairo_renderer_draw_glyph_item (PangoRenderer     *renderer,
         num_bytes  = iter.end_index - iter.start_index;
         num_glyphs = backward ? iter.start_glyph - iter.end_glyph : iter.end_glyph - iter.start_glyph;
 
-       if (num_bytes < 1)
-         g_warning ("pango_cairo_renderer_draw_glyph_item: bad cluster has num_bytes %d", num_bytes);
-       if (num_glyphs < 1)
-         g_warning ("pango_cairo_renderer_draw_glyph_item: bad cluster has num_glyphs %d", num_glyphs);
+        if (num_bytes < 1)
+          g_warning ("pango_cairo_renderer_draw_glyph_item: bad cluster has num_bytes %d", num_bytes);
+        if (num_glyphs < 1)
+          g_warning ("pango_cairo_renderer_draw_glyph_item: bad cluster has num_glyphs %d", num_glyphs);
 
-       /* Discount empty and unknown glyphs */
-       for (i = MIN (iter.start_glyph, iter.end_glyph+1);
-            i < MAX (iter.start_glyph+1, iter.end_glyph);
-            i++)
-         {
-           PangoGlyphInfo *gi = &glyphs->glyphs[i];
+        /* Discount empty and unknown glyphs */
+        for (i = MIN (iter.start_glyph, iter.end_glyph+1);
+             i < MAX (iter.start_glyph+1, iter.end_glyph);
+             i++)
+          {
+            PangoGlyphInfo *gi = &glyphs->glyphs[i];
 
-           if (gi->glyph == PANGO_GLYPH_EMPTY ||
-               gi->glyph & PANGO_GLYPH_UNKNOWN_FLAG)
-             num_glyphs--;
-         }
+            if (gi->glyph == PANGO_GLYPH_EMPTY ||
+                gi->glyph & PANGO_GLYPH_UNKNOWN_FLAG)
+              num_glyphs--;
+          }
 
         cairo_clusters[num_clusters].num_bytes  = num_bytes;
         cairo_clusters[num_clusters].num_glyphs = num_glyphs;
@@ -586,12 +588,12 @@ pango_cairo_renderer_draw_glyph_item (PangoRenderer     *renderer,
     }
 
   pango_cairo_renderer_show_text_glyphs (renderer,
-                                        text + item->offset, item->length,
-                                        glyphs,
-                                        cairo_clusters, num_clusters,
-                                        backward,
-                                        font,
-                                        x, y);
+                                         text + item->offset, item->length,
+                                         glyphs,
+                                         cairo_clusters, num_clusters,
+                                         backward,
+                                         font,
+                                         x, y);
 
   if (cairo_clusters != stack_clusters)
     g_free (cairo_clusters);
@@ -599,11 +601,11 @@ pango_cairo_renderer_draw_glyph_item (PangoRenderer     *renderer,
 
 static void
 pango_cairo_renderer_draw_rectangle (PangoRenderer     *renderer,
-                                    PangoRenderPart    part,
-                                    int                x,
-                                    int                y,
-                                    int                width,
-                                    int                height)
+                                     PangoRenderPart    part,
+                                     int                x,
+                                     int                y,
+                                     int                width,
+                                     int                height)
 {
   PangoCairoRenderer *crenderer = (PangoCairoRenderer *) (renderer);
 
@@ -615,9 +617,9 @@ pango_cairo_renderer_draw_rectangle (PangoRenderer     *renderer,
     }
 
   cairo_rectangle (crenderer->cr,
-                  crenderer->x_offset + (double)x / PANGO_SCALE,
-                  crenderer->y_offset + (double)y / PANGO_SCALE,
-                  (double)width / PANGO_SCALE, (double)height / PANGO_SCALE);
+                   crenderer->x_offset + (double)x / PANGO_SCALE,
+                   crenderer->y_offset + (double)y / PANGO_SCALE,
+                   (double)width / PANGO_SCALE, (double)height / PANGO_SCALE);
 
   if (!crenderer->do_path)
     {
@@ -629,13 +631,13 @@ pango_cairo_renderer_draw_rectangle (PangoRenderer     *renderer,
 
 static void
 pango_cairo_renderer_draw_trapezoid (PangoRenderer     *renderer,
-                                    PangoRenderPart    part,
-                                    double             y1_,
-                                    double             x11,
-                                    double             x21,
-                                    double             y2,
-                                    double             x12,
-                                    double             x22)
+                                     PangoRenderPart    part,
+                                     double             y1_,
+                                     double             x11,
+                                     double             x21,
+                                     double             y2,
+                                     double             x12,
+                                     double             x22)
 {
   PangoCairoRenderer *crenderer = (PangoCairoRenderer *) (renderer);
   cairo_t *cr;
@@ -688,10 +690,10 @@ pango_cairo_renderer_draw_trapezoid (PangoRenderer     *renderer,
 
 static void
 draw_error_underline (cairo_t *cr,
-                     double   x,
-                     double   y,
-                     double   width,
-                     double   height)
+                      double   x,
+                      double   y,
+                      double   width,
+                      double   height)
 {
   double square = height / HEIGHT_SQUARES;
   double unit_width = (HEIGHT_SQUARES - 1) * square;
@@ -741,10 +743,10 @@ draw_error_underline (cairo_t *cr,
 
 static void
 pango_cairo_renderer_draw_error_underline (PangoRenderer *renderer,
-                                          int            x,
-                                          int            y,
-                                          int            width,
-                                          int            height)
+                                           int            x,
+                                           int            y,
+                                           int            width,
+                                           int            height)
 {
   PangoCairoRenderer *crenderer = (PangoCairoRenderer *) (renderer);
   cairo_t *cr = crenderer->cr;
@@ -759,9 +761,9 @@ pango_cairo_renderer_draw_error_underline (PangoRenderer *renderer,
     }
 
   draw_error_underline (cr,
-                       crenderer->x_offset + (double)x / PANGO_SCALE,
-                       crenderer->y_offset + (double)y / PANGO_SCALE,
-                       (double)width / PANGO_SCALE, (double)height / PANGO_SCALE);
+                        crenderer->x_offset + (double)x / PANGO_SCALE,
+                        crenderer->y_offset + (double)y / PANGO_SCALE,
+                        (double)width / PANGO_SCALE, (double)height / PANGO_SCALE);
 
   if (!crenderer->do_path)
     {
@@ -782,7 +784,7 @@ pango_cairo_renderer_class_init (PangoCairoRendererClass *klass)
   PangoRendererClass *renderer_class = PANGO_RENDERER_CLASS (klass);
 
   renderer_class->draw_glyphs = pango_cairo_renderer_draw_glyphs;
-  renderer_class->draw_glyph_item = pango_cairo_renderer_draw_glyph_item;
+  renderer_class->draw_run = pango_cairo_renderer_draw_run;
   renderer_class->draw_rectangle = pango_cairo_renderer_draw_rectangle;
   renderer_class->draw_trapezoid = pango_cairo_renderer_draw_trapezoid;
   renderer_class->draw_error_underline = pango_cairo_renderer_draw_error_underline;
@@ -800,9 +802,9 @@ acquire_renderer (void)
     {
       if (G_UNLIKELY (!cached_renderer))
         {
-         cached_renderer = g_object_new (PANGO_TYPE_CAIRO_RENDERER, NULL);
-         cached_renderer->is_cached_renderer = TRUE;
-       }
+          cached_renderer = g_object_new (PANGO_TYPE_CAIRO_RENDERER, NULL);
+          cached_renderer->is_cached_renderer = TRUE;
+        }
 
       renderer = cached_renderer;
     }
@@ -857,9 +859,9 @@ restore_current_point (PangoCairoRenderer *renderer)
 
 static void
 _pango_cairo_do_glyph_string (cairo_t          *cr,
-                             PangoFont        *font,
-                             PangoGlyphString *glyphs,
-                             gboolean          do_path)
+                              PangoFont        *font,
+                              PangoGlyphString *glyphs,
+                              gboolean          do_path)
 {
   PangoCairoRenderer *crenderer = acquire_renderer ();
   PangoRenderer *renderer = (PangoRenderer *) crenderer;
@@ -896,10 +898,10 @@ _pango_cairo_do_glyph_string (cairo_t          *cr,
 }
 
 static void
-_pango_cairo_do_glyph_item (cairo_t          *cr,
-                           const char       *text,
-                           PangoGlyphItem   *glyph_item,
-                           gboolean          do_path)
+_pango_cairo_do_run (cairo_t          *cr,
+                     const char       *text,
+                     PangoRun         *run,
+                     gboolean          do_path)
 {
   PangoCairoRenderer *crenderer = acquire_renderer ();
   PangoRenderer *renderer = (PangoRenderer *) crenderer;
@@ -923,12 +925,10 @@ _pango_cairo_do_glyph_item (cairo_t          *cr,
       pango_renderer_set_color (renderer, PANGO_RENDER_PART_OVERLINE, NULL);
     }
 
-  pango_renderer_draw_glyph_item (renderer, text, glyph_item, 0, 0);
+  pango_renderer_draw_run (renderer, text, run, 0, 0);
 
   if (!do_path)
-    {
-      pango_renderer_deactivate (renderer);
-    }
+    pango_renderer_deactivate (renderer);
 
   restore_current_point (crenderer);
 
@@ -975,8 +975,8 @@ _pango_cairo_do_lines (cairo_t    *cr,
 
 static void
 _pango_cairo_do_layout (cairo_t     *cr,
-                       PangoLayout *layout,
-                       gboolean     do_path)
+                        PangoLayout *layout,
+                        gboolean     do_path)
 {
   PangoCairoRenderer *crenderer = acquire_renderer ();
   PangoRenderer *renderer = (PangoRenderer *) crenderer;
@@ -994,11 +994,11 @@ _pango_cairo_do_layout (cairo_t     *cr,
 
 static void
 _pango_cairo_do_error_underline (cairo_t *cr,
-                                double   x,
-                                double   y,
-                                double   width,
-                                double   height,
-                                gboolean do_path)
+                                 double   x,
+                                 double   y,
+                                 double   width,
+                                 double   height,
+                                 gboolean do_path)
 {
   /* We don't use a renderer here, for a simple reason:
    * the only renderer we can get is the default renderer, that
@@ -1032,8 +1032,8 @@ _pango_cairo_do_error_underline (cairo_t *cr,
  */
 void
 pango_cairo_show_glyph_string (cairo_t          *cr,
-                              PangoFont        *font,
-                              PangoGlyphString *glyphs)
+                               PangoFont        *font,
+                               PangoGlyphString *glyphs)
 {
   g_return_if_fail (cr != NULL);
   g_return_if_fail (glyphs != NULL);
@@ -1043,13 +1043,12 @@ pango_cairo_show_glyph_string (cairo_t          *cr,
 
 
 /**
- * pango_cairo_show_glyph_item:
+ * pango_cairo_show_run:
  * @cr: a Cairo context
- * @text: the UTF-8 text that @glyph_item refers to
- * @glyph_item: a `PangoGlyphItem`
- *
- * Draws the glyphs in @glyph_item in the specified cairo context,
+ * @text: the UTF-8 text that @run refers to
+ * @run: a `PangoRun`
  *
+ * Draws the glyphs in @run in the specified cairo context,
  * embedding the text associated with the glyphs in the output if the
  * output format supports it (PDF for example), otherwise it acts
  * similar to [func@Pango.cairo_show_glyph_string].
@@ -1058,18 +1057,18 @@ pango_cairo_show_glyph_string (cairo_t          *cr,
  * be drawn at the current point of the cairo context.
  *
  * Note that @text is the start of the text for layout, which is then
- * indexed by `glyph_item->item->offset`.
+ * indexed by `run->item->offset`.
  */
 void
-pango_cairo_show_glyph_item (cairo_t          *cr,
-                            const char       *text,
-                            PangoGlyphItem   *glyph_item)
+pango_cairo_show_run (cairo_t          *cr,
+                      const char       *text,
+                      PangoRun         *run)
 {
   g_return_if_fail (cr != NULL);
   g_return_if_fail (text != NULL);
-  g_return_if_fail (glyph_item != NULL);
+  g_return_if_fail (run != NULL);
 
-  _pango_cairo_do_glyph_item (cr, text, glyph_item, FALSE);
+  _pango_cairo_do_run (cr, text, run, FALSE);
 }
 
 /**
@@ -1124,7 +1123,7 @@ pango_cairo_show_lines (cairo_t    *cr,
  */
 void
 pango_cairo_show_layout (cairo_t     *cr,
-                        PangoLayout *layout)
+                         PangoLayout *layout)
 {
   g_return_if_fail (cr != NULL);
   g_return_if_fail (PANGO_IS_LAYOUT (layout));
@@ -1150,10 +1149,10 @@ pango_cairo_show_layout (cairo_t     *cr,
  */
 void
 pango_cairo_show_error_underline (cairo_t *cr,
-                                 double  x,
-                                 double  y,
-                                 double  width,
-                                 double  height)
+                                  double  x,
+                                  double  y,
+                                  double  width,
+                                  double  height)
 {
   g_return_if_fail (cr != NULL);
   g_return_if_fail ((width >= 0) && (height >= 0));
@@ -1175,8 +1174,8 @@ pango_cairo_show_error_underline (cairo_t *cr,
  */
 void
 pango_cairo_glyph_string_path (cairo_t          *cr,
-                              PangoFont        *font,
-                              PangoGlyphString *glyphs)
+                               PangoFont        *font,
+                               PangoGlyphString *glyphs)
 {
   g_return_if_fail (cr != NULL);
   g_return_if_fail (glyphs != NULL);
@@ -1217,7 +1216,7 @@ pango_cairo_line_path (cairo_t   *cr,
  */
 void
 pango_cairo_layout_path (cairo_t     *cr,
-                        PangoLayout *layout)
+                         PangoLayout *layout)
 {
   g_return_if_fail (cr != NULL);
   g_return_if_fail (PANGO_IS_LAYOUT (layout));
@@ -1263,10 +1262,10 @@ pango_cairo_lines_path (cairo_t    *cr,
  */
 void
 pango_cairo_error_underline_path (cairo_t *cr,
-                                 double   x,
-                                 double   y,
-                                 double   width,
-                                 double   height)
+                                  double   x,
+                                  double   y,
+                                  double   width,
+                                  double   height)
 {
   g_return_if_fail (cr != NULL);
   g_return_if_fail ((width >= 0) && (height >= 0));
diff --git a/pango/pangocairo-render.h b/pango/pangocairo-render.h
index aadb831e..45ca44ae 100644
--- a/pango/pangocairo-render.h
+++ b/pango/pangocairo-render.h
@@ -30,9 +30,9 @@ void    pango_cairo_show_glyph_string           (cairo_t          *cr,
                                                  PangoGlyphString *glyphs);
 
 PANGO_AVAILABLE_IN_ALL
-void    pango_cairo_show_glyph_item             (cairo_t          *cr,
+void    pango_cairo_show_run                    (cairo_t          *cr,
                                                  const char       *text,
-                                                 PangoGlyphItem   *glyph_item);
+                                                 PangoRun         *run);
 PANGO_AVAILABLE_IN_ALL
 void     pango_cairo_show_line                  (cairo_t          *cr,
                                                  PangoLine        *line);
diff --git a/tests/testiter.c b/tests/testiter.c
index 7cad242b..f38e10d7 100644
--- a/tests/testiter.c
+++ b/tests/testiter.c
@@ -255,73 +255,12 @@ test_line_iter (void)
   pango_font_description_free (font_desc);
 }
 
-static void
-test_glyphitem_iter (void)
-{
-  PangoContext *context;
-  PangoFontDescription *font_desc;
-  PangoLayout  *layout;
-  PangoLine *line;
-  const char *text;
-
-  context = pango_context_new ();
-  font_desc = pango_font_description_from_string ("cantarell 11");
-  pango_context_set_font_description (context, font_desc);
-
-  layout = pango_layout_new (context);
-  /* This shouldn't form any ligatures. */
-  pango_layout_set_text (layout, "test تست", -1);
-  text = pango_layout_get_text (layout);
-
-  line = pango_lines_get_lines (pango_layout_get_lines (layout))[0];
-  for (int i = 0; i < pango_line_get_run_count (line); i++)
-  {
-    PangoGlyphItem *run = (PangoGlyphItem *)pango_line_get_runs (line)[i]; /* FIXME */
-    int direction;
-
-    for (direction = 0; direction < 2; direction++)
-    {
-      PangoGlyphItemIter iter;
-      gboolean have_cluster;
-      PangoGlyphItemIter *iter2;
-
-      for (have_cluster = direction ?
-             pango_glyph_item_iter_init_start (&iter, run, text) :
-             pango_glyph_item_iter_init_end (&iter, run, text);
-           have_cluster;
-           have_cluster = direction ?
-             pango_glyph_item_iter_next_cluster (&iter) :
-             pango_glyph_item_iter_prev_cluster (&iter))
-      {
-        verbose ("start index %d end index %d\n", iter.start_index, iter.end_index);
-        g_assert_true (iter.start_index < iter.end_index);
-        g_assert_true (iter.start_index + 2 >= iter.end_index);
-        g_assert_true (iter.start_char + 1 == iter.end_char);
-
-        iter2 = pango_glyph_item_iter_copy (&iter);
-        g_assert_true (iter2->start_glyph == iter.start_glyph);
-        g_assert_true (iter2->start_index == iter.start_index);
-        g_assert_true (iter2->start_char == iter.start_char);
-        g_assert_true (iter2->end_glyph == iter.end_glyph);
-        g_assert_true (iter2->end_index == iter.end_index);
-        g_assert_true (iter2->end_char == iter.end_char);
-        pango_glyph_item_iter_free (iter2);
-      }
-    }
-  }
-
-  g_object_unref (layout);
-  g_object_unref (context);
-  pango_font_description_free (font_desc);
-}
-
 int
 main (int argc, char *argv[])
 {
   g_test_init (&argc, &argv, NULL);
 
   g_test_add_func ("/layout/iter", test_line_iter);
-  g_test_add_func ("/layout/glyphitem-iter", test_glyphitem_iter);
 
   return g_test_run ();
 }


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