src/hb-ft.cc | 16 ++++++++++------ util/ansi-print.cc | 26 +++++++++++++------------- 2 files changed, 23 insertions(+), 19 deletions(-)
New commits: commit 9df099b4837df722e738675af318efcc9ac39a78 Author: Behdad Esfahbod <beh...@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 <beh...@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);
_______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz