|
|
|
@ -129,6 +129,8 @@ hb_shape_full (hb_font_t *font, |
|
|
|
|
if (unlikely (!buffer->len)) |
|
|
|
|
return true; |
|
|
|
|
|
|
|
|
|
buffer->enter (); |
|
|
|
|
|
|
|
|
|
hb_buffer_t *text_buffer = nullptr; |
|
|
|
|
if (buffer->flags & HB_BUFFER_FLAG_VERIFY) |
|
|
|
|
{ |
|
|
|
@ -140,8 +142,12 @@ hb_shape_full (hb_font_t *font, |
|
|
|
|
features, num_features, |
|
|
|
|
font->coords, font->num_coords, |
|
|
|
|
shaper_list); |
|
|
|
|
buffer->shaping_failed = false; |
|
|
|
|
|
|
|
|
|
hb_bool_t res = hb_shape_plan_execute (shape_plan, font, buffer, features, num_features); |
|
|
|
|
|
|
|
|
|
if (buffer->max_ops <= 0) |
|
|
|
|
buffer->shaping_failed = true; |
|
|
|
|
|
|
|
|
|
hb_shape_plan_destroy (shape_plan); |
|
|
|
|
|
|
|
|
|
if (text_buffer) |
|
|
|
@ -157,6 +163,8 @@ hb_shape_full (hb_font_t *font, |
|
|
|
|
hb_buffer_destroy (text_buffer); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
buffer->leave (); |
|
|
|
|
|
|
|
|
|
return res; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|