[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