diff options
author | Robin Watts <robin.watts@artifex.com> | 2011-09-14 17:36:57 +0100 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2011-09-15 14:50:17 +0100 |
commit | b51ef0eea028c73b6379e832eaa34fff3fbbb927 (patch) | |
tree | 1ab685ccd356e7fdc832b2e3322c0486b2670cfb /fitz/filt_dctd.c | |
parent | 89ae81f651bfa112b8e07317eb6983beaf7cb212 (diff) | |
download | mupdf-b51ef0eea028c73b6379e832eaa34fff3fbbb927.tar.xz |
Add context to mupdf.
Huge pervasive change to lots of files, adding a context for exception
handling and allocation.
In time we'll move more statics into there.
Also fix some for(i = 0; i < function(...); i++) calls.
Diffstat (limited to 'fitz/filt_dctd.c')
-rw-r--r-- | fitz/filt_dctd.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/fitz/filt_dctd.c b/fitz/filt_dctd.c index 372efe9e..94a06afb 100644 --- a/fitz/filt_dctd.c +++ b/fitz/filt_dctd.c @@ -8,6 +8,7 @@ typedef struct fz_dctd_s fz_dctd; struct fz_dctd_s { fz_stream *chain; + fz_context *ctx; int color_transform; int init; int stride; @@ -144,7 +145,7 @@ read_dctd(fz_stream *stm, unsigned char *buf, int len) jpeg_start_decompress(cinfo); state->stride = cinfo->output_width * cinfo->output_components; - state->scanline = fz_malloc(state->stride); + state->scanline = fz_malloc(state->ctx, state->stride); state->rp = state->scanline; state->wp = state->scanline; @@ -196,9 +197,9 @@ close_dctd(fz_stream *stm) skip: state->chain->rp = state->chain->wp - state->cinfo.src->bytes_in_buffer; jpeg_destroy_decompress(&state->cinfo); - fz_free(state->scanline); + fz_free(stm->ctx, state->scanline); fz_close(state->chain); - fz_free(state); + fz_free(stm->ctx, state); } fz_stream * @@ -207,15 +208,16 @@ fz_open_dctd(fz_stream *chain, fz_obj *params) fz_dctd *state; fz_obj *obj; - state = fz_malloc(sizeof(fz_dctd)); - memset(state, 0, sizeof(fz_dctd)); + assert(chain); + state = fz_calloc(chain->ctx, 1, sizeof(fz_dctd)); + state->ctx = chain->ctx; state->chain = chain; state->color_transform = -1; /* unset */ state->init = 0; - obj = fz_dict_gets(params, "ColorTransform"); + obj = fz_dict_gets(chain->ctx, params, "ColorTransform"); if (obj) - state->color_transform = fz_to_int(obj); + state->color_transform = fz_to_int(chain->ctx, obj); - return fz_new_stream(state, read_dctd, close_dctd); + return fz_new_stream(chain->ctx, state, read_dctd, close_dctd); } |