You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
44 lines
1.5 KiB
3 years ago
|
From 5b85ddd19a8420a1bd2d5529325be35d78e94234 Mon Sep 17 00:00:00 2001
|
||
|
From: Chris Liddell <chris.liddell@artifex.com>
|
||
|
Date: Fri, 2 Aug 2019 15:18:26 +0100
|
||
|
Subject: Bug 701394: protect use of .forceput with executeonly
|
||
|
|
||
|
|
||
|
diff --git a/Resource/Init/gs_type1.ps b/Resource/Init/gs_type1.ps
|
||
|
index 6c7735bc0c..a039ccee35 100644
|
||
|
--- a/Resource/Init/gs_type1.ps
|
||
|
+++ b/Resource/Init/gs_type1.ps
|
||
|
@@ -118,25 +118,25 @@
|
||
|
( to be the same as glyph: ) print 1 index //== exec } if
|
||
|
3 index exch 3 index .forceput
|
||
|
% scratch(string) RAGL(dict) AGL(dict) CharStrings(dict) cstring gname
|
||
|
- }
|
||
|
+ }executeonly
|
||
|
{pop} ifelse
|
||
|
- } forall
|
||
|
+ } executeonly forall
|
||
|
pop pop
|
||
|
- }
|
||
|
+ } executeonly
|
||
|
{
|
||
|
pop pop pop
|
||
|
} ifelse
|
||
|
- }
|
||
|
+ } executeonly
|
||
|
{
|
||
|
% scratch(string) RAGL(dict) AGL(dict) CharStrings(dict) cstring gname
|
||
|
pop pop
|
||
|
} ifelse
|
||
|
- } forall
|
||
|
+ } executeonly forall
|
||
|
3 1 roll pop pop
|
||
|
- } if
|
||
|
+ } executeonly if
|
||
|
pop
|
||
|
dup /.AGLprocessed~GS //true .forceput
|
||
|
- } if
|
||
|
+ } executeonly if
|
||
|
|
||
|
%% We need to excute the C .buildfont1 in a stopped context so that, if there
|
||
|
%% are errors we can put the stack back sanely and exit. Otherwise callers won't
|