[pango/item-offset: 2/6] Cosmetic




commit 1fcd5ae9a9dfd3a7c5ccacd11ffd54a3ad93e643
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Aug 28 11:12:35 2021 -0400

    Cosmetic
    
    Improve the itemization code to have all
    variants take the same code paths, so we
    can do fixups in one place.

 pango/itemize.c               | 38 ++++++++++++++++----------------------
 pango/pango-context-private.h |  3 +++
 pango/pango-context.c         |  5 ++++-
 3 files changed, 23 insertions(+), 23 deletions(-)
---
diff --git a/pango/itemize.c b/pango/itemize.c
index 27a9865d..bd699bce 100644
--- a/pango/itemize.c
+++ b/pango/itemize.c
@@ -700,7 +700,7 @@ itemize_state_add_character (ItemizeState *state,
         break;
     }
 
-  state->item->analysis.flags = state->centered_baseline ? PANGO_ANALYSIS_FLAG_CENTERED_BASELINE : 0;
+  state->item->analysis.flags |= state->centered_baseline ? PANGO_ANALYSIS_FLAG_CENTERED_BASELINE : 0;
 
   state->item->analysis.script = state->script;
   state->item->analysis.language = state->derived_lang;
@@ -1021,21 +1021,24 @@ itemize_state_finish (ItemizeState *state)
 /* }}} */
 /* {{{ Public API */
 
-/* Like pango_itemize, but takes a font description */
+/* Like pango_itemize_with_base_dir, but takes a font description */
 GList *
 pango_itemize_with_font (PangoContext               *context,
+                         PangoDirection              base_dir,
                          const char                 *text,
                          int                         start_index,
                          int                         length,
+                         PangoAttrList              *attrs,
+                         PangoAttrIterator          *cached_iter,
                          const PangoFontDescription *desc)
 {
   ItemizeState state;
 
-  if (length == 0)
+  if (length == 0 || g_utf8_get_char (text + start_index) == '\0')
     return NULL;
 
-  itemize_state_init (&state, context, text, context->base_dir, start_index, length,
-                      NULL, NULL, desc);
+  itemize_state_init (&state, context, text, base_dir, start_index, length,
+                      attrs, cached_iter, desc);
 
   do
     itemize_state_process_run (&state);
@@ -1079,26 +1082,15 @@ pango_itemize_with_base_dir (PangoContext      *context,
                              PangoAttrList     *attrs,
                              PangoAttrIterator *cached_iter)
 {
-  ItemizeState state;
-
   g_return_val_if_fail (context != NULL, NULL);
   g_return_val_if_fail (start_index >= 0, NULL);
   g_return_val_if_fail (length >= 0, NULL);
   g_return_val_if_fail (length == 0 || text != NULL, NULL);
 
-  if (length == 0 || g_utf8_get_char (text + start_index) == '\0')
-    return NULL;
-
-  itemize_state_init (&state, context, text, base_dir, start_index, length,
-                      attrs, cached_iter, NULL);
-
-  do
-    itemize_state_process_run (&state);
-  while (itemize_state_next (&state));
-
-  itemize_state_finish (&state);
-
-  return g_list_reverse (state.result);
+  return pango_itemize_with_font (context, base_dir,
+                                  text, start_index, length,
+                                  attrs, cached_iter,
+                                  NULL);
 }
 
 /**
@@ -1142,8 +1134,10 @@ pango_itemize (PangoContext      *context,
   g_return_val_if_fail (length >= 0, NULL);
   g_return_val_if_fail (length == 0 || text != NULL, NULL);
 
-  return pango_itemize_with_base_dir (context, context->base_dir,
-                                      text, start_index, length, attrs, cached_iter);
+  return pango_itemize_with_font (context, context->base_dir,
+                                  text, start_index, length,
+                                  attrs, cached_iter,
+                                  NULL);
 }
 
 /* }}} */
diff --git a/pango/pango-context-private.h b/pango/pango-context-private.h
index 240c07d4..d65406e1 100644
--- a/pango/pango-context-private.h
+++ b/pango/pango-context-private.h
@@ -51,9 +51,12 @@ struct _PangoContext
 };
 
 GList *         pango_itemize_with_font (PangoContext               *context,
+                                         PangoDirection              base_dir,
                                          const char                 *text,
                                          int                         start_index,
                                          int                         length,
+                                         PangoAttrList              *attrs,
+                                         PangoAttrIterator          *cached_iter,
                                          const PangoFontDescription *desc);
 
 
diff --git a/pango/pango-context.c b/pango/pango-context.c
index d76b0ae2..2301138f 100644
--- a/pango/pango-context.c
+++ b/pango/pango-context.c
@@ -712,7 +712,10 @@ pango_context_get_metrics (PangoContext               *context,
 
   sample_str = pango_language_get_sample_string (language);
   text_len = strlen (sample_str);
-  items = pango_itemize_with_font (context, sample_str, 0, text_len, desc);
+  items = pango_itemize_with_font (context, context->base_dir,
+                                   sample_str, 0, text_len,
+                                   NULL, NULL,
+                                   desc);
 
   update_metrics_from_items (metrics, language, sample_str, text_len, items);
 


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