[gs-cvs] rev 7167 - in trunk/gs: lib src

alexcher at ghostscript.com alexcher at ghostscript.com
Mon Nov 6 17:13:42 PST 2006


Author: alexcher
Date: 2006-11-06 17:13:42 -0800 (Mon, 06 Nov 2006)
New Revision: 7167

Modified:
   trunk/gs/lib/gs_lev2.ps
   trunk/gs/src/zcie.c
   trunk/gs/src/zcrd.c
Log:
Fix CET 09-32:
Adjust error reporting from setcolorrendering to match the test.
Make TransformPQR a required parameter, as specified by the PLRM.

DIFFERENCES:
None


Modified: trunk/gs/lib/gs_lev2.ps
===================================================================
--- trunk/gs/lib/gs_lev2.ps	2006-11-06 18:58:56 UTC (rev 7166)
+++ trunk/gs/lib/gs_lev2.ps	2006-11-07 01:13:42 UTC (rev 7167)
@@ -737,7 +737,15 @@
 /.colorrenderingtypes 5 dict def
 
 /setcolorrendering {		% <crd> setcolorrendering -
-  dup /ColorRenderingType get //.colorrenderingtypes exch get exec
+  dup /ColorRenderingType get
+  dup type /integertype ne {
+    /setcolorrendering .systemvar /typecheck signalerror
+  } if
+  //.colorrenderingtypes exch .knownget {
+     exec 
+  } {
+    /setcolorrendering .systemvar /rangecheck signalerror
+  } ifelse
 } odef
 
 /.setcolorrendering1 where { pop } { (%END CRD) .skipeof } ifelse

Modified: trunk/gs/src/zcie.c
===================================================================
--- trunk/gs/src/zcie.c	2006-11-06 18:58:56 UTC (rev 7166)
+++ trunk/gs/src/zcie.c	2006-11-07 01:13:42 UTC (rev 7167)
@@ -81,10 +81,12 @@
 	    check_proc_only(proc);
 	}
 	*pparray = *pvalue;
-    } else
+        return 0;
+    } else {
 	make_const_array(pparray, a_readonly | avm_foreign,
 			 count, &empty_procs[0]);
-    return 0;
+        return 1;
+    }
 }
 
 /* Get 3 ranges from a dictionary. */

Modified: trunk/gs/src/zcrd.c
===================================================================
--- trunk/gs/src/zcrd.c	2006-11-06 18:58:56 UTC (rev 7166)
+++ trunk/gs/src/zcrd.c	2006-11-07 01:13:42 UTC (rev 7167)
@@ -175,11 +175,17 @@
     int code;
     ref *pRT;
 
-    if ((code = dict_proc3_param(mem, op, "EncodeLMN", &pcprocs->EncodeLMN)) < 0 ||
-      (code = dict_proc3_param(mem, op, "EncodeABC", &pcprocs->EncodeABC)) < 0 ||
-    (code = dict_proc3_param(mem, op, "TransformPQR", &pcprocs->TransformPQR)) < 0
-	)
-	return (code < 0 ? code : gs_note_error(e_rangecheck));
+    code = dict_proc3_param(mem, op, "EncodeLMN", &pcprocs->EncodeLMN);
+    if (code < 0)
+        return code;  
+    code = dict_proc3_param(mem, op, "EncodeABC", &pcprocs->EncodeABC);
+    if (code < 0)
+        return code;  
+    code = dict_proc3_param(mem, op, "TransformPQR", &pcprocs->TransformPQR);
+    if (code < 0)
+        return code;  
+    if (code == 1)
+	return gs_note_error(e_undefined);
     if (dict_find_string(op, "RenderTable", &pRT) > 0) {
 	const ref *prte;
 	int size;



More information about the gs-cvs mailing list