diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2015-01-21 16:42:45 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2015-02-17 18:05:39 +0100 |
commit | f84a189d5f94250e46d2cbd1a75aba00130e2dd6 (patch) | |
tree | 8ee614ab90de1baa8941f91ae4946ed5c2e70721 /source/fitz/filter-fax.c | |
parent | 681039767f2ccc72e236246178893eb0989169c9 (diff) | |
download | mupdf-f84a189d5f94250e46d2cbd1a75aba00130e2dd6.tar.xz |
Add ctx parameter and remove embedded contexts for API regularity.
Purge several embedded contexts:
Remove embedded context in fz_output.
Remove embedded context in fz_stream.
Remove embedded context in fz_device.
Remove fz_rebind_stream (since it is no longer necessary).
Remove embedded context in svg_device.
Remove embedded context in XML parser.
Add ctx argument to fz_document functions.
Remove embedded context in fz_document.
Remove embedded context in pdf_document.
Remove embedded context in pdf_obj.
Make fz_page independent of fz_document in the interface.
We shouldn't need to pass the document to all functions handling a page.
If a page is tied to the source document, it's redundant; otherwise it's
just pointless.
Fix reference counting oddity in fz_new_image_from_pixmap.
Diffstat (limited to 'source/fitz/filter-fax.c')
-rw-r--r-- | source/fitz/filter-fax.c | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/source/fitz/filter-fax.c b/source/fitz/filter-fax.c index 134c2ae5..f0a58160 100644 --- a/source/fitz/filter-fax.c +++ b/source/fitz/filter-fax.c @@ -321,7 +321,6 @@ enum struct fz_faxd_s { - fz_context *ctx; fz_stream *chain; int k; @@ -355,14 +354,14 @@ static inline void eat_bits(fz_faxd *fax, int nbits) } static int -fill_bits(fz_faxd *fax) +fill_bits(fz_context *ctx, fz_faxd *fax) { /* The longest length of bits we'll ever need is 13. Never read more * than we need to avoid unnecessary overreading of the end of the * stream. */ while (fax->bidx > (32-13)) { - int c = fz_read_byte(fax->chain); + int c = fz_read_byte(ctx, fax->chain); if (c == EOF) return EOF; fax->bidx -= 8; @@ -372,7 +371,7 @@ fill_bits(fz_faxd *fax) } static int -get_code(fz_faxd *fax, const cfd_node *table, int initialbits) +get_code(fz_context *ctx, fz_faxd *fax, const cfd_node *table, int initialbits) { unsigned int word = fax->word; int tidx = word >> (32 - initialbits); @@ -402,9 +401,9 @@ dec1d(fz_context *ctx, fz_faxd *fax) fax->a = 0; if (fax->c) - code = get_code(fax, cf_black_decode, cfd_black_initial_bits); + code = get_code(ctx, fax, cf_black_decode, cfd_black_initial_bits); else - code = get_code(fax, cf_white_decode, cfd_white_initial_bits); + code = get_code(ctx, fax, cf_white_decode, cfd_white_initial_bits); if (code == UNCOMPRESSED) fz_throw(ctx, FZ_ERROR_GENERIC, "uncompressed data in faxd"); @@ -441,9 +440,9 @@ dec2d(fz_context *ctx, fz_faxd *fax) fax->a = 0; if (fax->c) - code = get_code(fax, cf_black_decode, cfd_black_initial_bits); + code = get_code(ctx, fax, cf_black_decode, cfd_black_initial_bits); else - code = get_code(fax, cf_white_decode, cfd_white_initial_bits); + code = get_code(ctx, fax, cf_white_decode, cfd_white_initial_bits); if (code == UNCOMPRESSED) fz_throw(ctx, FZ_ERROR_GENERIC, "uncompressed data in faxd"); @@ -471,7 +470,7 @@ dec2d(fz_context *ctx, fz_faxd *fax) return; } - code = get_code(fax, cf_2d_decode, cfd_2d_initial_bits); + code = get_code(ctx, fax, cf_2d_decode, cfd_2d_initial_bits); switch (code) { @@ -556,9 +555,8 @@ dec2d(fz_context *ctx, fz_faxd *fax) } static int -next_faxd(fz_stream *stm, int max) +next_faxd(fz_context *ctx, fz_stream *stm, int max) { - fz_context *ctx = stm->ctx; fz_faxd *fax = stm->state; unsigned char *p = fax->buffer; unsigned char *ep; @@ -569,11 +567,11 @@ next_faxd(fz_stream *stm, int max) ep = p + max; if (fax->stage == STATE_INIT && fax->end_of_line) { - fill_bits(fax); + fill_bits(ctx, fax); if ((fax->word >> (32 - 12)) != 1) { fz_warn(ctx, "faxd stream doesn't start with EOL"); - while (!fill_bits(fax) && (fax->word >> (32 - 12)) != 1) + while (!fill_bits(ctx, fax) && (fax->word >> (32 - 12)) != 1) eat_bits(fax, 1); } if ((fax->word >> (32 - 12)) != 1) @@ -591,7 +589,7 @@ next_faxd(fz_stream *stm, int max) loop: - if (fill_bits(fax)) + if (fill_bits(ctx, fax)) { if (fax->bidx > 31) { @@ -776,28 +774,20 @@ close_faxd(fz_context *ctx, void *state_) /* if we read any extra bytes, try to put them back */ i = (32 - fax->bidx) / 8; while (i--) - fz_unread_byte(fax->chain); + fz_unread_byte(ctx, fax->chain); - fz_drop_stream(fax->chain); + fz_drop_stream(ctx, fax->chain); fz_free(ctx, fax->ref); fz_free(ctx, fax->dst); fz_free(ctx, fax); } -static fz_stream * -rebind_faxd(fz_stream *s) -{ - fz_faxd *state = s->state; - return state->chain; -} - /* Default: columns = 1728, end_of_block = 1, the rest = 0 */ fz_stream * -fz_open_faxd(fz_stream *chain, +fz_open_faxd(fz_context *ctx, fz_stream *chain, int k, int end_of_line, int encoded_byte_align, int columns, int rows, int end_of_block, int black_is_1) { - fz_context *ctx = chain->ctx; fz_faxd *fax = NULL; fz_var(fax); @@ -848,9 +838,9 @@ fz_open_faxd(fz_stream *chain, fz_free(ctx, fax->ref); } fz_free(ctx, fax); - fz_drop_stream(chain); + fz_drop_stream(ctx, chain); fz_rethrow(ctx); } - return fz_new_stream(ctx, fax, next_faxd, close_faxd, rebind_faxd); + return fz_new_stream(ctx, fax, next_faxd, close_faxd); } |