summaryrefslogtreecommitdiff
path: root/base/gxiscale.c
diff options
context:
space:
mode:
authorShailesh Mistry <shailesh.mistry@hotmail.co.uk>2018-11-18 14:45:00 +0000
committerShailesh Mistry <shailesh.mistry@hotmail.co.uk>2019-01-02 21:22:20 +0000
commit486f3b4a677180bbef2553114bf13916c76e1884 (patch)
treece7f79890e6f713e867c910b3906856572d51fc0 /base/gxiscale.c
parent0b3e0befdc87323eb518d6233c5fcdf5e006e6dc (diff)
downloadghostpdl-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.c16
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;
}
}