diff options
Diffstat (limited to 'source/fitz/stext-device.c')
-rw-r--r-- | source/fitz/stext-device.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/fitz/stext-device.c b/source/fitz/stext-device.c index f50bbf82..55f2033b 100644 --- a/source/fitz/stext-device.c +++ b/source/fitz/stext-device.c @@ -1015,7 +1015,7 @@ fz_bidi_reorder_stext_page(fz_context *ctx, fz_stext_page *page) } static void -fz_stext_close(fz_context *ctx, fz_device *dev) +fz_stext_close_device(fz_context *ctx, fz_device *dev) { fz_stext_device *tdev = (fz_stext_device*)dev; @@ -1023,8 +1023,6 @@ fz_stext_close(fz_context *ctx, fz_device *dev) tdev->cur_span = NULL; strain_soup(ctx, tdev); - free_span_soup(ctx, tdev->spans); - tdev->spans = NULL; /* TODO: smart sorting of blocks in reading order */ /* TODO: unicode NFC normalization */ @@ -1032,6 +1030,14 @@ fz_stext_close(fz_context *ctx, fz_device *dev) fz_bidi_reorder_stext_page(ctx, tdev->page); } +static void +fz_stext_drop_device(fz_context *ctx, fz_device *dev) +{ + fz_stext_device *tdev = (fz_stext_device*)dev; + free_span_soup(ctx, tdev->spans); + tdev->spans = NULL; +} + fz_device * fz_new_stext_device(fz_context *ctx, fz_stext_sheet *sheet, fz_stext_page *page) { @@ -1039,7 +1045,9 @@ fz_new_stext_device(fz_context *ctx, fz_stext_sheet *sheet, fz_stext_page *page) dev->super.hints = FZ_IGNORE_IMAGE | FZ_IGNORE_SHADE; - dev->super.close = fz_stext_close; + dev->super.close_device = fz_stext_close_device; + dev->super.drop_device = fz_stext_drop_device; + dev->super.fill_text = fz_stext_fill_text; dev->super.stroke_text = fz_stext_stroke_text; dev->super.clip_text = fz_stext_clip_text; |