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/gxifast.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/gxifast.c')
-rw-r--r-- | base/gxifast.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/base/gxifast.c b/base/gxifast.c index 8ab774f6c..e5ea6cdc0 100644 --- a/base/gxifast.c +++ b/base/gxifast.c @@ -50,10 +50,10 @@ iclass_proc(gs_image_class_1_simple); static irender_proc(image_render_skip); static irender_proc(image_render_simple); static irender_proc(image_render_landscape); -irender_proc_t -gs_image_class_1_simple(gx_image_enum * penum) + +int +gs_image_class_1_simple(gx_image_enum * penum, irender_proc_t *render_fn) { - irender_proc_t rproc; fixed ox = dda_current(penum->dda.pixel0.x); fixed oy = dda_current(penum->dda.pixel0.y); @@ -82,12 +82,12 @@ gs_image_class_1_simple(gx_image_enum * penum) penum->line = gs_alloc_bytes(penum->memory, penum->line_size, "image line"); if (penum->line == 0) { - return 0; + return gs_error_VMerror; } } if_debug2m('b', penum->memory, "[b]render=simple, unpack=copy; rect.w=%d, dev_width=%ld\n", penum->rect.w, dev_width); - rproc = image_render_simple; + *render_fn = image_render_simple; break; } case image_landscape: @@ -110,7 +110,7 @@ gs_image_class_1_simple(gx_image_enum * penum) penum->line = gs_alloc_bytes(penum->memory, penum->line_size, "image line"); if (penum->line == 0) { - return 0; + return gs_error_VMerror; } #ifdef PACIFY_VALGRIND memset(penum->line, 0, penum->line_size); /* For the number of scan lined < 8 */ @@ -119,7 +119,7 @@ gs_image_class_1_simple(gx_image_enum * penum) if_debug3m('b', penum->memory, "[b]render=landscape, unpack=copy; rect.w=%d, dev_width=%ld, line_size=%ld\n", penum->rect.w, dev_width, line_size); - rproc = image_render_landscape; + *render_fn = image_render_landscape; /* Precompute values needed for rasterizing. */ penum->dxy = float2fixed(penum->matrix.xy + @@ -158,11 +158,11 @@ gs_image_class_1_simple(gx_image_enum * penum) * The only other possible in-range value is v0 = 0, v1 = 1. * The image is completely transparent! */ - rproc = image_render_skip; + *render_fn = image_render_skip; } penum->map[0].decoding = sd_none; } - return rproc; + return 0; } /* ------ Rendering procedures ------ */ |