[gs-cvs] rev 8555 - branches/mtrender/src
ray at ghostscript.com
ray at ghostscript.com
Wed Feb 27 13:50:43 PST 2008
Author: ray
Date: 2008-02-27 13:50:42 -0800 (Wed, 27 Feb 2008)
New Revision: 8555
Modified:
branches/mtrender/src/gxclthrd1.c
Log:
Fix re-opening the clist files when reverting to single threaded mode. Also
Handle PageCount which is a dynamic value to fix problems with multi-page
files.
Modified: branches/mtrender/src/gxclthrd1.c
===================================================================
--- branches/mtrender/src/gxclthrd1.c 2008-02-27 19:36:18 UTC (rev 8554)
+++ branches/mtrender/src/gxclthrd1.c 2008-02-27 21:50:42 UTC (rev 8555)
@@ -117,6 +117,7 @@
((gx_device_printer *)ncdev)->buffer_memory = ncdev->memory =
ncdev->bandlist_memory = mem;
gs_c_param_list_read(¶mlist);
+ ndev->PageCount = dev->PageCount; /* copy to prevent mismatch error */
if ((code = gs_putdeviceparams(ndev, (gs_param_list *)¶mlist)) < 0)
break;
ncdev->page_uses_transparency = cdev->page_uses_transparency;
@@ -174,7 +175,18 @@
gs_free_object(mem, crdev->render_threads, "clist_setup_render_threads");
crdev->render_threads = NULL;
pdev->num_render_threads_requested = 0; /* shut down thread support */
- return_error(gs_error_VMerror);
+ /* restore the file pointers */
+ if (cdev->page_cfile == NULL) {
+ char fmode[4];
+
+ strcpy(fmode, "w+");
+ strcat(fmode, gp_fmode_binary_suffix);
+ cdev->page_info.io_procs->fopen(cdev->page_cfname, fmode, &cdev->page_cfile,
+ mem, cdev->bandlist_memory, true);
+ cdev->page_info.io_procs->fopen(cdev->page_bfname, fmode, &cdev->page_bfile,
+ mem, cdev->bandlist_memory, false);
+ }
+ return_error(code);
}
crdev->num_render_threads = i;
crdev->curr_render_thread = 0;
More information about the gs-cvs
mailing list