summaryrefslogtreecommitdiff
path: root/source/fitz/stext-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz/stext-device.c')
-rw-r--r--source/fitz/stext-device.c16
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;