{
hb_unicode_get_mirroring_func_t get_mirroring = c->buffer->unicode->v.get_mirroring;
- if (HB_DIRECTION_IS_FORWARD (c->buffer->props.direction))
+ if (HB_DIRECTION_IS_FORWARD (c->original_direction))
return;
hb_mask_t rtlm_mask = c->plan->map.get_1_mask (HB_TAG ('r','t','l','m'));
hb_set_unicode_props (c); /* BUFFER: Set general_category and combining_class in var1 */
+ hb_ensure_native_direction (c);
+
hb_form_clusters (c);
hb_ot_shape_setup_masks (c); /* BUFFER: Clobbers var2 */
/* Mirroring needs to see the original direction */
hb_mirror_chars (c);
- hb_ensure_native_direction (c);
-
hb_substitute_default (c);
hb_ot_substitute_complex (c);