summaryrefslogtreecommitdiff
path: root/source/tools
diff options
context:
space:
mode:
Diffstat (limited to 'source/tools')
-rw-r--r--source/tools/muconvert.c2
-rw-r--r--source/tools/mudraw.c11
-rw-r--r--source/tools/muraster.c9
-rw-r--r--source/tools/murun.c18
4 files changed, 27 insertions, 13 deletions
diff --git a/source/tools/muconvert.c b/source/tools/muconvert.c
index 95f01c4a..4fb3b071 100644
--- a/source/tools/muconvert.c
+++ b/source/tools/muconvert.c
@@ -162,6 +162,8 @@ int muconvert_main(int argc, char **argv)
fz_drop_document(ctx, doc);
}
+ fz_close_document_writer(ctx, out);
+
fz_drop_document_writer(ctx, out);
fz_drop_context(ctx);
return EXIT_SUCCESS;
diff --git a/source/tools/mudraw.c b/source/tools/mudraw.c
index 0521a9b0..16e12b6b 100644
--- a/source/tools/mudraw.c
+++ b/source/tools/mudraw.c
@@ -554,6 +554,7 @@ static void drawband(fz_context *ctx, fz_page *page, fz_display_list *list, cons
fz_run_display_list(ctx, list, dev, ctm, tbounds, cookie);
else
fz_run_page(ctx, page, dev, ctm, cookie);
+ fz_close_device(ctx, dev);
fz_drop_device(ctx, dev);
dev = NULL;
@@ -596,6 +597,7 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in
else
fz_run_page(ctx, page, dev, &fz_identity, cookie);
fz_printf(ctx, out, "</page>\n");
+ fz_close_device(ctx, dev);
}
fz_always(ctx)
{
@@ -628,6 +630,7 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in
fz_run_display_list(ctx, list, dev, &fz_identity, &fz_infinite_rect, cookie);
else
fz_run_page(ctx, page, dev, &fz_identity, cookie);
+ fz_close_device(ctx, dev);
fz_drop_device(ctx, dev);
dev = NULL;
if (output_format == OUT_STEXT)
@@ -674,6 +677,7 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in
fz_run_display_list(ctx, list, dev, &fz_identity, NULL, cookie);
else
fz_run_page(ctx, page, dev, &fz_identity, cookie);
+ fz_close_device(ctx, dev);
page_obj = pdf_add_page(ctx, pdfout, &mediabox, rotation, resources, contents);
pdf_insert_page(ctx, pdfout, -1, page_obj);
@@ -726,6 +730,7 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in
fz_run_display_list(ctx, list, dev, &ctm, &tbounds, cookie);
else
fz_run_page(ctx, page, dev, &ctm, cookie);
+ fz_close_device(ctx, dev);
fz_drop_device(ctx, dev);
dev = NULL;
}
@@ -754,10 +759,8 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in
fz_ps_output_context *psoc = NULL;
fz_mono_pcl_output_context *pmcoc = NULL;
fz_color_pcl_output_context *pccoc = NULL;
- fz_device *dev = NULL;
fz_bitmap *bit = NULL;
- fz_var(dev);
fz_var(pix);
fz_var(poc);
fz_var(psoc);
@@ -991,8 +994,6 @@ static void dodrawpage(fz_context *ctx, fz_page *page, fz_display_list *list, in
{
fz_drop_bitmap(ctx, bit);
bit = NULL;
- fz_drop_device(ctx, dev);
- dev = NULL;
if (num_workers > 0)
{
int band;
@@ -1121,6 +1122,7 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
if (lowmemory)
fz_enable_device_hints(ctx, dev, FZ_NO_CACHE);
fz_run_page(ctx, page, dev, &fz_identity, &cookie);
+ fz_close_device(ctx, dev);
}
fz_always(ctx)
{
@@ -1153,6 +1155,7 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
fz_run_display_list(ctx, list, dev, &fz_identity, &fz_infinite_rect, NULL);
else
fz_run_page(ctx, page, dev, &fz_identity, &cookie);
+ fz_close_device(ctx, dev);
}
fz_always(ctx)
{
diff --git a/source/tools/muraster.c b/source/tools/muraster.c
index e5d886f4..6a2cf87e 100644
--- a/source/tools/muraster.c
+++ b/source/tools/muraster.c
@@ -710,6 +710,7 @@ static int drawband(fz_context *ctx, fz_page *page, fz_display_list *list, const
fz_run_display_list(ctx, list, dev, ctm, tbounds, cookie);
else
fz_run_page(ctx, page, dev, ctm, cookie);
+ fz_close_device(ctx, dev);
fz_drop_device(ctx, dev);
dev = NULL;
@@ -726,12 +727,10 @@ static int drawband(fz_context *ctx, fz_page *page, fz_display_list *list, const
static int dodrawpage(fz_context *ctx, int pagenum, fz_cookie *cookie, render_details *render)
{
- fz_device *dev = NULL;
fz_pixmap *pix = NULL;
fz_bitmap *bit = NULL;
int errors_are_fatal = 0;
- fz_var(dev);
fz_var(pix);
fz_var(bit);
fz_var(errors_are_fatal);
@@ -852,8 +851,6 @@ static int dodrawpage(fz_context *ctx, int pagenum, fz_cookie *cookie, render_de
{
fz_drop_bitmap(ctx, bit);
bit = NULL;
- fz_drop_device(ctx, dev);
- dev = NULL;
if (render->num_workers > 0)
{
int band;
@@ -1198,9 +1195,11 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
#if GREY_FALLBACK != 0
test_dev = fz_new_test_device(ctx, &is_color, 0.01f, 0, list_dev);
fz_run_page(ctx, page, test_dev, &fz_identity, &cookie);
+ fz_close_device(ctx, test_dev);
#else
fz_run_page(ctx, page, list_dev, &fz_identity, &cookie);
#endif
+ fz_close_device(ctx, list_dev);
}
fz_always(ctx)
{
@@ -1229,6 +1228,7 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
{
test_dev = fz_new_test_device(ctx, &is_color, 0.01f, 0, test_dev);
fz_run_page(ctx, page, test_dev, &fz_identity, &cookie);
+ fz_close_device(ctx, test_dev);
}
fz_always(ctx)
{
@@ -1258,6 +1258,7 @@ static void drawpage(fz_context *ctx, fz_document *doc, int pagenum)
fz_run_display_list(ctx, list, test_dev, &fz_identity, &fz_infinite_rect, &cookie);
else
fz_run_page(ctx, page, test_dev, &fz_identity, &cookie);
+ fz_close_device(ctx, test_dev);
}
fz_always(ctx)
{
diff --git a/source/tools/murun.c b/source/tools/murun.c
index a3eacaa8..fb35f0a0 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -178,7 +178,10 @@ static const char *require_js =
static void ffi_gc_fz_buffer(js_State *J, void *buf)
{
fz_context *ctx = js_getcontext(J);
- fz_drop_buffer(ctx, buf);
+ fz_try(ctx)
+ fz_drop_buffer(ctx, buf);
+ fz_catch(ctx)
+ rethrow(J);
}
static void ffi_gc_fz_document(js_State *J, void *doc)
@@ -1497,11 +1500,13 @@ static void ffi_Page_run(js_State *J)
} else {
device = new_js_device(ctx, J);
js_copy(J, 1); /* put the js device on the top so the callbacks know where to get it */
- fz_try(ctx)
+ fz_try(ctx) {
if (no_annots)
fz_run_page_contents(ctx, page, device, &ctm, NULL);
else
fz_run_page(ctx, page, device, &ctm, NULL);
+ fz_close_device(ctx, device);
+ }
fz_always(ctx)
fz_drop_device(ctx, device);
fz_catch(ctx)
@@ -1650,8 +1655,10 @@ static void ffi_Annotation_run(js_State *J)
} else {
device = new_js_device(ctx, J);
js_copy(J, 1); /* put the js device on the top so the callbacks know where to get it */
- fz_try(ctx)
+ fz_try(ctx) {
fz_run_annot(ctx, annot, device, &ctm, NULL);
+ fz_close_device(ctx, device);
+ }
fz_always(ctx)
fz_drop_device(ctx, device);
fz_catch(ctx)
@@ -2213,8 +2220,10 @@ static void ffi_DisplayList_run(js_State *J)
} else {
device = new_js_device(ctx, J);
js_copy(J, 1);
- fz_try(ctx)
+ fz_try(ctx) {
fz_run_display_list(ctx, list, device, &ctm, NULL, NULL);
+ fz_close_device(ctx, device);
+ }
fz_always(ctx)
fz_drop_device(ctx, device);
fz_catch(ctx)
@@ -2418,7 +2427,6 @@ static void ffi_DocumentWriter_endPage(js_State *J)
rethrow(J);
}
-
static void ffi_DocumentWriter_close(js_State *J)
{
fz_context *ctx = js_getcontext(J);