summaryrefslogtreecommitdiff
path: root/Resource/Init/gs_setpd.ps
diff options
context:
space:
mode:
authorRay Johnston <ray.johnston@artifex.com>2018-09-21 11:16:18 -0700
committerRay Johnston <ray.johnston@artifex.com>2018-09-24 20:31:08 -0700
commit95aa78beae9489d5c9f898fe2032aa23f860867d (patch)
tree105a771c3d9128ee3e2ccdc61a0150154f4b381f /Resource/Init/gs_setpd.ps
parent863b370ba7d791720b97ae10deb211fde8bdbd0a (diff)
downloadghostpdl-95aa78beae9489d5c9f898fe2032aa23f860867d.tar.gz
Catch errors in setpagesize, .setpagesize and setpagedevice and cleanup
Bug 699794 showed that attempt to change page size in SAFER mode when the nulldevice was the currentdevice would leave 'false' on the stack. Run .setdevice in stopped and clean up, and also clean up .setpagesize
Diffstat (limited to 'Resource/Init/gs_setpd.ps')
-rw-r--r--Resource/Init/gs_setpd.ps9
1 files changed, 7 insertions, 2 deletions
diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps
index aa79b3f0b..c129f6b79 100644
--- a/Resource/Init/gs_setpd.ps
+++ b/Resource/Init/gs_setpd.ps
@@ -919,10 +919,15 @@ SETPDDEBUG { (Recovering.) = pstack flush } if
% Stack: mark ... <merged> <failed> <device> <eraseflag>
SETPDDEBUG { (Installing.) = pstack flush } if
- pop
+ pop
% .setdevice clears the current page device!
.currentpagedevice pop exch
- .setdevice pop
+ { .setdevice } stopped {
+ cleartomark exch pop
+ /setpagedevice $error /errorname get
+ signalerror
+ } if
+ pop
.setpagedevice
% Implement UseCIEColor directly if this is a LL3 system.