summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Resource/Init/pdf_main.ps38
1 files changed, 23 insertions, 15 deletions
diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps
index 09f87353c..4d59d9c53 100644
--- a/Resource/Init/pdf_main.ps
+++ b/Resource/Init/pdf_main.ps
@@ -1952,22 +1952,30 @@ currentdict /xref-char-dict undef
Trailer /Root knownoget {
/Pages knownoget {
10 dict begin
+ /Count pdfpagecount def
/verify_page_tree_recursive {
- dup 1 def
- dup /Kids knownoget {
- { oforce
- dup //null ne {
- currentdict 1 index known {
- ( **** Error: there's a loop in the Pages tree. Giving up.\n) pdfformaterror
- /verify_page_tree cvx /syntaxerror signalerror
- } if
- verify_page_tree_recursive
- } {
- pop
- } ifelse
- } forall
- } if
- currentdict exch undef
+ Count 0 gt {
+ dup 1 def
+ dup /Kids knownoget {
+ { oforce
+ dup //null ne {
+ currentdict 1 index known {
+ ( **** Error: there's a loop in the Pages tree. Giving up.\n) pdfformaterror
+ /verify_page_tree cvx /syntaxerror signalerror
+ } if
+ verify_page_tree_recursive
+ } {
+ pop
+ } ifelse
+ } forall
+ } {
+ /Count Count 1 sub def
+ }ifelse
+ currentdict exch undef
+ } {
+ pop
+ ( **** Error: Too many pages in Page tree.\n) pdfformaterror
+ } ifelse
} def
verify_page_tree_recursive
end