diff options
author | L Peter Deutsch <lpd@ghostscript.com> | 2000-04-04 22:16:02 +0000 |
---|---|---|
committer | L Peter Deutsch <lpd@ghostscript.com> | 2000-04-04 22:16:02 +0000 |
commit | 1f6f50f694aca2e271d8e9c8da3df72c277a085f (patch) | |
tree | 66bc3e15b9415820667a055bda6bbb2cef966271 | |
parent | 5dbebef729842941f079c0f6c63c64757f518a31 (diff) | |
download | ghostpdl-1f6f50f694aca2e271d8e9c8da3df72c277a085f.tar.gz |
Fix: The internaldict "operator" was allocated in local VM, preventing it
from being bound into procedures allocated in global VM.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@242 a1074d23-0009-0410-80fe-cf8c14f379e6
-rw-r--r-- | gs/lib/gs_init.ps | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gs/lib/gs_init.ps b/gs/lib/gs_init.ps index 01bcd4b9f..1b7b1a703 100644 --- a/gs/lib/gs_init.ps +++ b/gs/lib/gs_init.ps @@ -470,13 +470,18 @@ currentdict /.typenames .undef //.wheredict 1 index .knownget { exec } { .where } ifelse } odef -% internaldict is defined in systemdict, but is allocated in local VM. +% internaldict is defined in systemdict, but the dictionary is allocated +% in local VM. However, the procedure must be global, since it is an +% "operator" and must be bind-able into global procedures. % We make a procedure for creating it, since we must create a new one % for each context with private local VM. /.makeinternaldict { - .currentglobal false .setglobal + .currentglobal true .setglobal [ /dup .systemvar 1183615869 /eq .systemvar - [ /pop .systemvar 10 dict ] cvx + [ /pop .systemvar null ] cvx + false .setglobal + dup 1 10 dict .forceput % proc is global, dict is local + true .setglobal [ /internaldict /cvx .systemvar /invalidaccess /signalerror cvx ] cvx /ifelse .systemvar ] cvx executeonly |