[HarfBuzz] harfbuzz: Branch 'master' - 2 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Mon May 18 18:38:14 PDT 2015


 src/hb-ft.cc       |   16 ++++++++++------
 util/ansi-print.cc |   26 +++++++++++++-------------
 2 files changed, 23 insertions(+), 19 deletions(-)

New commits:
commit 9df099b4837df722e738675af318efcc9ac39a78
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon May 18 18:37:06 2015 -0700

    [ft] Don't set *glyph in get_glyph() if glyph not found

diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 322f93a..3d5cd63 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -75,15 +75,19 @@ hb_ft_get_glyph (hb_font_t *font HB_UNUSED,
 		 void *user_data HB_UNUSED)
 
 {
+  unsigned int g;
   FT_Face ft_face = (FT_Face) font_data;
 
-  if (unlikely (variation_selector)) {
-    *glyph = FT_Face_GetCharVariantIndex (ft_face, unicode, variation_selector);
-    return *glyph != 0;
-  }
+  if (likely (!variation_selector))
+    g = FT_Get_Char_Index (ft_face, unicode);
+  else
+    g = FT_Face_GetCharVariantIndex (ft_face, unicode, variation_selector);
 
-  *glyph = FT_Get_Char_Index (ft_face, unicode);
-  return *glyph != 0;
+  if (unlikely (!g))
+    return false;
+
+  *glyph = g;
+  return true;
 }
 
 static hb_position_t
commit ff0f210519bcb0e44d4b986f7eef2004383cd344
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon May 18 14:16:28 2015 -0700

    [util] Minor

diff --git a/util/ansi-print.cc b/util/ansi-print.cc
index 0fc3719..e9060af 100644
--- a/util/ansi-print.cc
+++ b/util/ansi-print.cc
@@ -222,11 +222,12 @@ struct biimage_t
 };
 
 const char *
-block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
+block_best (const biimage_t &bi, bool *inverse)
 {
   assert (bi.width  <= CELL_W);
   assert (bi.height <= CELL_H);
 
+  unsigned int score = (unsigned int) -1;
   unsigned int row_sum[CELL_H] = {0};
   unsigned int col_sum[CELL_W] = {0};
   unsigned int row_sum_i[CELL_H] = {0};
@@ -262,14 +263,14 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
   const char *best_c = " ";
 
   /* Maybe empty is better! */
-  if (total < *score) {
-    *score = total;
+  if (total < score) {
+    score = total;
     *inverse = false;
     best_c = " ";
   }
   /* Maybe full is better! */
-  if (total_i < *score) {
-    *score = total_i;
+  if (total_i < score) {
+    score = total_i;
     *inverse = true;
     best_c = " ";
   }
@@ -295,11 +296,11 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
 	best_inv = true;
       }
     }
-    if (best_s < *score) {
+    if (best_s < score) {
       static const char *lower[7] = {"▁", "▂", "▃", "▄", "▅", "▆", "▇"};
       unsigned int which = lround (((best_i + 1) * 8) / bi.height);
       if (1 <= which && which <= 7) {
-	*score = best_s;
+	score = best_s;
 	*inverse = best_inv;
 	best_c = lower[7 - which];
       }
@@ -327,11 +328,11 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
 	best_inv = false;
       }
     }
-    if (best_s < *score) {
+    if (best_s < score) {
       static const char *left [7] = {"▏", "▎", "▍", "▌", "▋", "▊", "▉"};
       unsigned int which = lround (((best_i + 1) * 8) / bi.width);
       if (1 <= which && which <= 7) {
-	*score = best_s;
+	score = best_s;
 	*inverse = best_inv;
 	best_c = left[which - 1];
       }
@@ -349,7 +350,7 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
 	  qs += quad_i[i][j];
 	} else
 	  qs += quad[i][j];
-    if (qs < *score) {
+    if (qs < score) {
       const char *c = NULL;
       bool inv = false;
       switch (q) {
@@ -365,7 +366,7 @@ block_best (const biimage_t &bi, unsigned int *score, bool *inverse)
 	case 14: c = "▟"; inv = true;  break;
       }
       if (c) {
-	*score = qs;
+	score = qs;
 	*inverse = inv;
 	best_c = c;
       }
@@ -400,9 +401,8 @@ ansi_print_image_rgb24 (const uint32_t *data,
 	printf (" ");
       } else {
         /* Figure out the closest character to the biimage */
-        unsigned int score = (unsigned int) -1;
 	bool inverse = false;
-        const char *c = block_best (bi, &score, &inverse);
+        const char *c = block_best (bi, &inverse);
 	if (inverse) {
 	  if (last_bg != bi.fg || last_fg != bi.bg) {
 	    printf ("\e[%d;%dm", 30 + bi.bg, 40 + bi.fg);


More information about the HarfBuzz mailing list