| Index: third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic-fallback.hh
|
| diff --git a/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic-fallback.hh b/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic-fallback.hh
|
| index 996e40e8dd82ef150f425a786669b31749064365..6b2b87e3f284194c2528c7e4981fc1646a6ce115 100644
|
| --- a/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic-fallback.hh
|
| +++ b/third_party/harfbuzz-ng/src/hb-ot-shape-complex-arabic-fallback.hh
|
| @@ -199,7 +199,7 @@ struct arabic_fallback_plan_t
|
|
|
| hb_mask_t mask_array[ARABIC_NUM_FALLBACK_FEATURES];
|
| OT::SubstLookup *lookup_array[ARABIC_NUM_FALLBACK_FEATURES];
|
| - hb_set_digest_t digest_array[ARABIC_NUM_FALLBACK_FEATURES];
|
| + hb_ot_layout_lookup_accelerator_t accel_array[ARABIC_NUM_FALLBACK_FEATURES];
|
| };
|
|
|
| static const arabic_fallback_plan_t arabic_fallback_plan_nil = {};
|
| @@ -214,12 +214,11 @@ arabic_fallback_plan_create (const hb_ot_shape_plan_t *plan,
|
|
|
| for (unsigned int i = 0; i < ARABIC_NUM_FALLBACK_FEATURES; i++)
|
| {
|
| - fallback_plan->digest_array[i].init ();
|
| fallback_plan->mask_array[i] = plan->map.get_1_mask (arabic_fallback_features[i]);
|
| if (fallback_plan->mask_array[i]) {
|
| fallback_plan->lookup_array[i] = arabic_fallback_synthesize_lookup (plan, font, i);
|
| if (fallback_plan->lookup_array[i])
|
| - fallback_plan->lookup_array[i]->add_coverage (&fallback_plan->digest_array[i]);
|
| + fallback_plan->accel_array[i].init (*fallback_plan->lookup_array[i]);
|
| }
|
| }
|
|
|
| @@ -234,7 +233,10 @@ arabic_fallback_plan_destroy (arabic_fallback_plan_t *fallback_plan)
|
|
|
| for (unsigned int i = 0; i < ARABIC_NUM_FALLBACK_FEATURES; i++)
|
| if (fallback_plan->lookup_array[i])
|
| + {
|
| + fallback_plan->accel_array[i].fini (fallback_plan->lookup_array[i]);
|
| free (fallback_plan->lookup_array[i]);
|
| + }
|
|
|
| free (fallback_plan);
|
| }
|
| @@ -244,10 +246,13 @@ arabic_fallback_plan_shape (arabic_fallback_plan_t *fallback_plan,
|
| hb_font_t *font,
|
| hb_buffer_t *buffer)
|
| {
|
| + OT::hb_apply_context_t c (0, font, buffer);
|
| for (unsigned int i = 0; i < ARABIC_NUM_FALLBACK_FEATURES; i++)
|
| if (fallback_plan->lookup_array[i]) {
|
| - OT::hb_apply_context_t c (0, font, buffer, fallback_plan->mask_array[i], true/*auto_zwj*/);
|
| - fallback_plan->lookup_array[i]->apply_string (&c, &fallback_plan->digest_array[i]);
|
| + c.set_lookup_mask (fallback_plan->mask_array[i]);
|
| + hb_ot_layout_substitute_lookup (&c,
|
| + *fallback_plan->lookup_array[i],
|
| + fallback_plan->accel_array[i]);
|
| }
|
| }
|
|
|
|
|