src/hb-old.cc | 3 +++ src/hb-ot-shape-fallback.cc | 6 +----- src/hb-ot-shape-normalize.cc | 5 +---- src/hb-ot-shape.cc | 5 +---- src/hb-unicode-private.hh | 9 +++++++++ 5 files changed, 15 insertions(+), 13 deletions(-)
New commits: commit 5d502443f5a07cbd0aa860dd71a0fa4ea8b6ff9f Author: Behdad Esfahbod <[email protected]> Date: Thu Sep 6 15:29:29 2012 -0400 [old] Clear offset array diff --git a/src/hb-old.cc b/src/hb-old.cc index 197e620..529bffa 100644 --- a/src/hb-old.cc +++ b/src/hb-old.cc @@ -337,6 +337,9 @@ retry: ALLOCATE_ARRAY (HB_GlyphAttributes, item.attributes, num_glyphs); ALLOCATE_ARRAY (HB_Fixed, item.advances, num_glyphs); ALLOCATE_ARRAY (HB_FixedPoint, item.offsets, num_glyphs); + /* Apparently in some cases the offsets array will not be fully assigned to. + * Clear it. */ + memset (item.offsets, 0, num_glyphs * sizeof (item.offsets[0])); uint32_t *vis_clusters; ALLOCATE_ARRAY (uint32_t, vis_clusters, num_glyphs); commit 9433c218b4853442dd9ad53d0588a837a33dbf1e Author: Behdad Esfahbod <[email protected]> Date: Thu Sep 6 14:27:15 2012 -0400 [OT] Simplify fallback positioning condition diff --git a/src/hb-ot-shape-fallback.cc b/src/hb-ot-shape-fallback.cc index ae1137a..e8b41f7 100644 --- a/src/hb-ot-shape-fallback.cc +++ b/src/hb-ot-shape-fallback.cc @@ -348,8 +348,7 @@ position_cluster (const hb_ot_shape_plan_t *plan, /* Find the base glyph */ for (unsigned int i = start; i < end; i++) - if (is_a_ligature (buffer->info[i]) || - !HB_UNICODE_GENERAL_CATEGORY_IS_MARK (_hb_glyph_info_get_general_category (&buffer->info[i]))) + if (!HB_UNICODE_GENERAL_CATEGORY_IS_MARK (_hb_glyph_info_get_general_category (&buffer->info[i]))) { position_around_base (plan, font, buffer, i, end); break; commit 028a1706f898bfcee0d14acfba47ebe1de09f0c4 Author: Behdad Esfahbod <[email protected]> Date: Thu Sep 6 14:25:48 2012 -0400 Refactor common macro diff --git a/src/hb-ot-shape-fallback.cc b/src/hb-ot-shape-fallback.cc index 8f7eb47..ae1137a 100644 --- a/src/hb-ot-shape-fallback.cc +++ b/src/hb-ot-shape-fallback.cc @@ -349,10 +349,7 @@ position_cluster (const hb_ot_shape_plan_t *plan, /* Find the base glyph */ for (unsigned int i = start; i < end; i++) if (is_a_ligature (buffer->info[i]) || - !(FLAG (_hb_glyph_info_get_general_category (&buffer->info[i])) & - (FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) | - FLAG (HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK) | - FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK)))) + !HB_UNICODE_GENERAL_CATEGORY_IS_MARK (_hb_glyph_info_get_general_category (&buffer->info[i]))) { position_around_base (plan, font, buffer, i, end); break; diff --git a/src/hb-ot-shape-normalize.cc b/src/hb-ot-shape-normalize.cc index f4d8330..18a3f3f 100644 --- a/src/hb-ot-shape-normalize.cc +++ b/src/hb-ot-shape-normalize.cc @@ -130,10 +130,7 @@ compose_func (hb_unicode_funcs_t *unicode, hb_codepoint_t *ab) { /* XXX, this belongs to indic normalizer. */ - if ((FLAG (unicode->general_category (a)) & - (FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) | - FLAG (HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK) | - FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK)))) + if (HB_UNICODE_GENERAL_CATEGORY_IS_MARK (unicode->general_category (a))) return false; /* XXX, add composition-exclusion exceptions to Indic shaper. */ if (a == 0x09AF && b == 0x09BC) { *ab = 0x09DF; return true; } diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 1dd8b0a..9e44c5d 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -270,10 +270,7 @@ hb_form_clusters (hb_buffer_t *buffer) { unsigned int count = buffer->len; for (unsigned int i = 1; i < count; i++) - if (FLAG (_hb_glyph_info_get_general_category (&buffer->info[i])) & - (FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) | - FLAG (HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK) | - FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK))) + if (HB_UNICODE_GENERAL_CATEGORY_IS_MARK (_hb_glyph_info_get_general_category (&buffer->info[i]))) buffer->merge_clusters (i - 1, i + 1); } diff --git a/src/hb-unicode-private.hh b/src/hb-unicode-private.hh index 7ef5820..9f24a9f 100644 --- a/src/hb-unicode-private.hh +++ b/src/hb-unicode-private.hh @@ -268,4 +268,13 @@ extern HB_INTERNAL const hb_unicode_funcs_t _hb_unicode_funcs_nil; #define HB_MODIFIED_COMBINING_CLASS_CCC132 132 /* sign u */ +/* Misc */ + +#define HB_UNICODE_GENERAL_CATEGORY_IS_MARK(gen_cat) \ + (FLAG (gen_cat) & \ + (FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) | \ + FLAG (HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK) | \ + FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK))) + + #endif /* HB_UNICODE_PRIVATE_HH */ _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
