diff options
author | Robin Watts <Robin.Watts@artifex.com> | 2017-03-23 18:55:45 -0400 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2017-03-23 18:56:52 -0400 |
commit | 6979982ba2900f451c801d35bb7e52413a89d26e (patch) | |
tree | 2b74146bc04e4bd66d00734570947a6d3818344c /source/fitz | |
parent | 031c7035652d3c967321c9c308dea7cfb1c0e6fa (diff) | |
download | mupdf-6979982ba2900f451c801d35bb7e52413a89d26e.tar.xz |
Add fz_new_writer function.
Moves document_writers into the same style as
fz_new_{image,document,page} etc.
Diffstat (limited to 'source/fitz')
-rw-r--r-- | source/fitz/output-cbz.c | 15 | ||||
-rw-r--r-- | source/fitz/output-svg.c | 7 | ||||
-rw-r--r-- | source/fitz/writer.c | 13 |
3 files changed, 16 insertions, 19 deletions
diff --git a/source/fitz/output-cbz.c b/source/fitz/output-cbz.c index 7268a805..73cc1195 100644 --- a/source/fitz/output-cbz.c +++ b/source/fitz/output-cbz.c @@ -66,13 +66,7 @@ cbz_drop_writer(fz_context *ctx, fz_document_writer *wri_) fz_document_writer * fz_new_cbz_writer(fz_context *ctx, const char *path, const char *options) { - fz_cbz_writer *wri; - - wri = fz_malloc_struct(ctx, fz_cbz_writer); - wri->super.begin_page = cbz_begin_page; - wri->super.end_page = cbz_end_page; - wri->super.close_writer = cbz_close_writer; - wri->super.drop_writer = cbz_drop_writer; + fz_cbz_writer *wri = fz_new_writer(ctx, fz_cbz_writer, cbz_begin_page, cbz_end_page, cbz_close_writer, cbz_drop_writer); fz_try(ctx) { @@ -139,12 +133,7 @@ fz_new_pixmap_writer(fz_context *ctx, const char *path, const char *options, const char *default_path, int n, void (*save)(fz_context *ctx, fz_pixmap *pix, const char *filename)) { - fz_pixmap_writer *wri; - - wri = fz_malloc_struct(ctx, fz_pixmap_writer); - wri->super.begin_page = pixmap_begin_page; - wri->super.end_page = pixmap_end_page; - wri->super.drop_writer = pixmap_drop_writer; + fz_pixmap_writer *wri = fz_new_writer(ctx, fz_pixmap_writer, pixmap_begin_page, pixmap_end_page, NULL, pixmap_drop_writer); fz_try(ctx) { diff --git a/source/fitz/output-svg.c b/source/fitz/output-svg.c index f8711031..0758b843 100644 --- a/source/fitz/output-svg.c +++ b/source/fitz/output-svg.c @@ -58,13 +58,8 @@ svg_drop_writer(fz_context *ctx, fz_document_writer *wri_) fz_document_writer * fz_new_svg_writer(fz_context *ctx, const char *path, const char *args) { - fz_svg_writer *wri; const char *val; - - wri = fz_malloc_struct(ctx, fz_svg_writer); - wri->super.begin_page = svg_begin_page; - wri->super.end_page = svg_end_page; - wri->super.drop_writer = svg_drop_writer; + fz_svg_writer *wri = fz_new_writer(ctx, fz_svg_writer, svg_begin_page, svg_end_page, NULL, svg_drop_writer); wri->text_format = FZ_SVG_TEXT_AS_PATH; wri->reuse_images = 1; diff --git a/source/fitz/writer.c b/source/fitz/writer.c index 3c53f633..c89ee4e0 100644 --- a/source/fitz/writer.c +++ b/source/fitz/writer.c @@ -48,6 +48,19 @@ fz_option_eq(const char *a, const char *b) return !strncmp(a, b, n) && (a[n] == ',' || a[n] == 0); } +fz_document_writer *fz_new_writer_of_size(fz_context *ctx, size_t size, fz_document_writer_begin_page_fn *begin_page, + fz_document_writer_end_page_fn *end_page, fz_document_writer_close_writer_fn *close, fz_document_writer_drop_writer_fn *drop) +{ + fz_document_writer *wri = Memento_label(fz_calloc(ctx, 1, size), "fz_document_writer"); + + wri->begin_page = begin_page; + wri->end_page = end_page; + wri->close_writer = close; + wri->drop_writer = drop; + + return wri; +} + fz_document_writer * fz_new_document_writer(fz_context *ctx, const char *path, const char *format, const char *options) { |