diff options
author | Shailesh Mistry <shailesh.mistry@hotmail.co.uk> | 2018-11-18 14:45:00 +0000 |
---|---|---|
committer | Shailesh Mistry <shailesh.mistry@hotmail.co.uk> | 2019-01-02 21:22:20 +0000 |
commit | 486f3b4a677180bbef2553114bf13916c76e1884 (patch) | |
tree | ce7f79890e6f713e867c910b3906856572d51fc0 /base/gxiscale.c | |
parent | 0b3e0befdc87323eb518d6233c5fcdf5e006e6dc (diff) | |
download | ghostpdl-486f3b4a677180bbef2553114bf13916c76e1884.tar.gz |
Bug 697545: Update gx_image_enum_begin to correctly handle error returns.
Diffstat (limited to 'base/gxiscale.c')
-rw-r--r-- | base/gxiscale.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/base/gxiscale.c b/base/gxiscale.c index 526bd4308..cc2fc6fe6 100644 --- a/base/gxiscale.c +++ b/base/gxiscale.c @@ -173,8 +173,8 @@ static int mask_suitable_for_interpolation(gx_image_enum *penum) return high_level_color; } -irender_proc_t -gs_image_class_0_interpolate(gx_image_enum * penum) +int +gs_image_class_0_interpolate(gx_image_enum * penum, irender_proc_t *render_fn) { gs_memory_t *mem = penum->memory; stream_image_scale_params_t iss; @@ -550,13 +550,15 @@ gs_image_class_0_interpolate(gx_image_enum * penum) if_debug0m('b', penum->memory, "[b]render=interpolate\n"); if (penum->masked) { if (!mask_col_high_level) { - return (penum->posture == image_portrait ? + *render_fn = (penum->posture == image_portrait ? &image_render_interpolate_masked : &image_render_interpolate_landscape_masked); + return 0; } else { - return (penum->posture == image_portrait ? + *render_fn = (penum->posture == image_portrait ? &image_render_interpolate_masked_hl : &image_render_interpolate_landscape_masked_hl); + return 0; } } else if (use_icc) { /* Set up the link now */ @@ -604,13 +606,15 @@ gs_image_class_0_interpolate(gx_image_enum * penum) if (penum->bps == 16) { penum->unpack = sample_unpackicc_16; } - return (penum->posture == image_portrait ? + *render_fn = (penum->posture == image_portrait ? &image_render_interpolate_icc : &image_render_interpolate_landscape_icc); + return 0; } else { - return (penum->posture == image_portrait ? + *render_fn = (penum->posture == image_portrait ? &image_render_interpolate : &image_render_interpolate_landscape); + return 0; } } |