static void fz_dct_mem_free(j_common_ptr cinfo, void *object, size_t size) { fz_dctd *state = JZ_DCT_STATE_FROM_CINFO(cinfo); UNUSED(size); fz_free(state->ctx, object); }
static boolean fill_input_buffer(j_decompress_ptr cinfo) { struct jpeg_source_mgr *src = cinfo->src; fz_dctd *state = JZ_DCT_STATE_FROM_CINFO(cinfo); fz_stream *curr_stm = state->curr_stm; fz_context *ctx = curr_stm->ctx; curr_stm->rp = curr_stm->wp; fz_try(ctx) { src->bytes_in_buffer = fz_available(curr_stm, 1); } fz_catch(ctx) { fz_rethrow_if(ctx, FZ_ERROR_TRYLATER); return 0; } src->next_input_byte = curr_stm->rp; if (src->bytes_in_buffer == 0) { static unsigned char eoi[2] = { 0xFF, JPEG_EOI }; fz_warn(state->ctx, "premature end of file in jpeg"); src->next_input_byte = eoi; src->bytes_in_buffer = 2; } return 1; }
static void error_exit_dct(j_common_ptr cinfo) { char msg[JMSG_LENGTH_MAX]; fz_dctd *state = JZ_DCT_STATE_FROM_CINFO(cinfo); fz_context *ctx = state->ctx; cinfo->err->format_message(cinfo, msg); fz_throw(ctx, FZ_ERROR_GENERIC, "jpeg error: %s", msg); }
static void fz_dct_mem_term(struct jpeg_decompress_struct *cinfo) { if (cinfo->client_data) { fz_dctd *state = JZ_DCT_STATE_FROM_CINFO(cinfo); fz_free(state->ctx, cinfo->client_data); cinfo->client_data = NULL; } }
static void error_exit(j_common_ptr cinfo) { fz_dctd *state = JZ_DCT_STATE_FROM_CINFO(cinfo); cinfo->err->format_message(cinfo, state->msg); longjmp(state->jb, 1); }
static void * fz_dct_mem_alloc(j_common_ptr cinfo, size_t size) { fz_dctd *state = JZ_DCT_STATE_FROM_CINFO(cinfo); return fz_malloc(state->ctx, size); }