From 9062a94f31c2b8b4cfc711cdea2c011d2b88816d Mon Sep 17 00:00:00 2001 From: kandykoma <61843984+kandykoma@users.noreply.github.com> Date: Fri, 6 Mar 2020 02:40:55 +0900 Subject: [PATCH] limit recursion to the number of objects --- src/document.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/document.rs b/src/document.rs index 00e2e8f..e205c5b 100644 --- a/src/document.rs +++ b/src/document.rs @@ -296,8 +296,14 @@ impl Iterator for PageTreeIter<'_> { type Item = ObjectId; fn next(&mut self) -> Option { + let mut objcount = self.doc.objects.len(); loop { while let Some((kid, new_kids)) = self.kids.and_then(|k| k.split_first()) { + if objcount == 0 { + return None; + } + objcount -= 1; + self.kids = Some(new_kids); if let Ok(kid_id) = kid.as_reference() {