[gs-cvs] rev 7687 - in trunk/gs: doc src

leonardo at ghostscript.com leonardo at ghostscript.com
Thu Feb 8 05:33:56 PST 2007


Author: leonardo
Date: 2007-02-08 05:33:56 -0800 (Thu, 08 Feb 2007)
New Revision: 7687

Modified:
   trunk/gs/doc/pscet_status.txt
   trunk/gs/src/ztype.c
Log:
Fix (interpreter) : 'noaccess' must be idempotential operator.

DETAILS :

Debugged with CET 24-09-1.

Also removing an obsolete comment.

Occasionally discovered a regression with 20-15-1.

EXPECTED DIFFERENCES :

comparefiles: None.
CET tests :  24-09-1.


Modified: trunk/gs/doc/pscet_status.txt
===================================================================
--- trunk/gs/doc/pscet_status.txt	2007-02-07 21:42:46 UTC (rev 7686)
+++ trunk/gs/doc/pscet_status.txt	2007-02-08 13:33:56 UTC (rev 7687)
@@ -2914,7 +2914,7 @@
 
 13-12-3  OK	
 
-13-12-4  DIFF	kshpw error inconformity
+13-12-4  DIFF	kshow error inconformity
                 assign: Igor.
 
 13-12-5  OK	Minor differences visually reviewed by RJJ
@@ -3796,7 +3796,9 @@
 
 20-14-2  OK	Color corrected by rev 7172.
 
-20-15-1  OK	
+20-15-1  DIFF   userdict /product known
+		CPSI=F GS=T
+		assign: Alex
 
 20-15-2  OK	
 
@@ -4381,7 +4383,7 @@
 
 24-08-3  OK	
 
-24-09-1  DIFF	errordict must not be read-only. Assign: Igor or Assign: Alex.
+24-09-1  OK
 
 24-09-2  OK	
 

Modified: trunk/gs/src/ztype.c
===================================================================
--- trunk/gs/src/ztype.c	2007-02-07 21:42:46 UTC (rev 7686)
+++ trunk/gs/src/ztype.c	2007-02-08 13:33:56 UTC (rev 7687)
@@ -187,17 +187,17 @@
 	ref *aop = dict_access_ref(op);
 	
 	/* CPSI throws invalidaccess when seting noaccess to a readonly dictionary (CET 13-13-6) : */
-	if (!r_has_attrs(aop, a_write))
+	if (!r_has_attrs(aop, a_write)) {
+	    if (!r_has_attrs(aop, a_read) && !r_has_attrs(aop, a_execute)) {
+		/* Already noaccess - do nothing (CET 24-09-1). */
+		return 0;
+	    }
 	    return_error(e_invalidaccess);
+	}
 
 	/* Don't allow removing read access to permanent dictionaries. */
 	if (dict_is_permanent_on_dstack(op))
 	    return_error(e_invalidaccess);
-	/*
-	 * Even though Red Book 3 says that changing the access of a
-	 * read-only dictionary is not allowed, Adobe interpreters allow
-	 * executing noaccess on a readonly or noaccess dictionary.
-	 */
     }
     return access_check(i_ctx_p, 0, true);
 }



More information about the gs-cvs mailing list