summaryrefslogtreecommitdiffstats
path: root/libass/ass_shaper.c
diff options
context:
space:
mode:
Diffstat (limited to 'libass/ass_shaper.c')
-rw-r--r--libass/ass_shaper.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libass/ass_shaper.c b/libass/ass_shaper.c
index 0a1075d..a10041c 100644
--- a/libass/ass_shaper.c
+++ b/libass/ass_shaper.c
@@ -432,9 +432,10 @@ static void shape_harfbuzz(ASS_Shaper *shaper, GlyphInfo *glyphs, size_t len)
i++;
runs[run].offset = k;
runs[run].end = i;
- runs[run].buf = hb_buffer_create(i - k + 1);
+ runs[run].buf = hb_buffer_create();
runs[run].font = get_hb_font(shaper, glyphs + k);
set_run_features(shaper, glyphs + k);
+ hb_buffer_pre_allocate(runs[run].buf, i - k + 1);
hb_buffer_set_direction(runs[run].buf, direction ? HB_DIRECTION_RTL :
HB_DIRECTION_LTR);
hb_buffer_set_language(runs[run].buf, shaper->language);