[pango] [HB] Simplify loop



commit a465d3c1854033f2c3c05616bde7762ff0cf2d5b
Author: Behdad Esfahbod <behdad behdad org>
Date:   Fri Aug 14 19:37:18 2009 -0400

    [HB] Simplify loop

 pango/opentype/hb-ot-layout-gpos-private.hh |   31 ++++++++++++--------------
 1 files changed, 14 insertions(+), 17 deletions(-)
---
diff --git a/pango/opentype/hb-ot-layout-gpos-private.hh b/pango/opentype/hb-ot-layout-gpos-private.hh
index 1142864..3aa1160 100644
--- a/pango/opentype/hb-ot-layout-gpos-private.hh
+++ b/pango/opentype/hb-ot-layout-gpos-private.hh
@@ -944,13 +944,12 @@ struct MarkBasePosFormat1
       return false;
 
     /* now we search backwards for a non-mark glyph */
-    unsigned int count = buffer->in_pos;
-    unsigned int i = 0, j = count;
+    unsigned int j = buffer->in_pos;
     do
     {
-      if (HB_UNLIKELY (i == count))
+      if (HB_UNLIKELY (!j))
 	return false;
-      i++, j--;
+      j--;
     } while (_hb_ot_layout_skip_mark (context->face, IN_INFO (j), LookupFlag::IgnoreMarks, &property));
 
 #if 0
@@ -1045,13 +1044,12 @@ struct MarkLigPosFormat1
       return false;
 
     /* now we search backwards for a non-mark glyph */
-    unsigned int count = buffer->in_pos;
-    unsigned int i = 0, j = count;
+    unsigned int j = buffer->in_pos;
     do
     {
-      if (HB_UNLIKELY (i == count))
+      if (HB_UNLIKELY (!j))
 	return false;
-      i++, j--;
+      j--;
     } while (_hb_ot_layout_skip_mark (context->face, IN_INFO (j), LookupFlag::IgnoreMarks, &property));
 
 #if 0
@@ -1068,8 +1066,8 @@ struct MarkLigPosFormat1
     const LigatureAttach& lig_attach = lig_array[lig_index];
 
     /* Find component to attach to */
-    count = lig_attach.rows;
-    if (HB_UNLIKELY (!count))
+    unsigned int comp_count = lig_attach.rows;
+    if (HB_UNLIKELY (!comp_count))
       return false;
     unsigned int comp_index;
     /* We must now check whether the ligature ID of the current mark glyph
@@ -1079,11 +1077,11 @@ struct MarkLigPosFormat1
     if (IN_LIGID (j) == IN_LIGID (buffer->in_pos))
     {
       comp_index = IN_COMPONENT (buffer->in_pos);
-      if (comp_index >= count)
-	comp_index = count - 1;
+      if (comp_index >= comp_count)
+	comp_index = comp_count - 1;
     }
     else
-      comp_index = count - 1;
+      comp_index = comp_count - 1;
 
     return (this+markArray).apply (APPLY_ARG, mark_index, comp_index, lig_attach, classCount, j);
   }
@@ -1163,13 +1161,12 @@ struct MarkMarkPosFormat1
       return false;
 
     /* now we search backwards for a suitable mark glyph until a non-mark glyph */
-    unsigned int count = buffer->in_pos;
-    unsigned int i = 0, j = count;
+    unsigned int j = buffer->in_pos;
     do
     {
-      if (HB_UNLIKELY (i == count))
+      if (HB_UNLIKELY (!j))
 	return false;
-      i++, j--;
+      j--;
     } while (_hb_ot_layout_skip_mark (context->face, IN_INFO (j), lookup_flag, &property));
 
     if (!(property & HB_OT_LAYOUT_GLYPH_CLASS_MARK))



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