Bracket each page in a save/restore pair. This is suggested by the Red Book,
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 21 Sep 2004 15:23:22 +0000 (15:23 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Tue, 21 Sep 2004 15:23:22 +0000 (15:23 +0000)
enforces page independence, avoids leaking VM on level 1 interpreters, and
speeds things up to boot.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4561 cda61777-01e9-0310-a592-d414129be87e

bk_ps.c

diff --git a/bk_ps.c b/bk_ps.c
index 5750ec0..9f81ffe 100644 (file)
--- a/bk_ps.c
+++ b/bk_ps.c
@@ -138,6 +138,7 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords,
 
        pageno++;
        fprintf(fp, "%%%%Page: %d %d\n", pageno, pageno);
+       fprintf(fp, "save\n");
 
 #if 0
        {
@@ -206,7 +207,7 @@ void ps_backend(paragraph *sourceform, keywordlist *keywords,
            fprintf(fp, "]t\n");
        }
 
-       fprintf(fp, "showpage\n");
+       fprintf(fp, "restore showpage\n");
     }
 
     fprintf(fp, "%%%%EOF\n");