You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/04/04 18:41:04 UTC

svn commit: r1888355 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/destination/PDPageDestination.java

Author: tilman
Date: Sun Apr  4 18:41:04 2021
New Revision: 1888355

URL: http://svn.apache.org/viewvc?rev=1888355&view=rev
Log:
PDFBOX-4892: performance improvement, as suggested by valerybokov

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/destination/PDPageDestination.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/destination/PDPageDestination.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/destination/PDPageDestination.java?rev=1888355&r1=1888354&r2=1888355&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/destination/PDPageDestination.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/documentnavigation/destination/PDPageDestination.java Sun Apr  4 18:41:04 2021
@@ -138,9 +138,14 @@ public abstract class PDPageDestination
     private int indexOfPageTree(COSDictionary pageDict)
     {
         COSDictionary parent = pageDict;
-        while (parent.getCOSDictionary(COSName.PARENT, COSName.P) != null)
+        while (true)
         {
-            parent = parent.getCOSDictionary(COSName.PARENT, COSName.P);
+            COSDictionary prevParent = parent.getCOSDictionary(COSName.PARENT, COSName.P);
+            if (prevParent == null)
+            {
+                break;
+            }
+            parent = prevParent;
         }
         if (parent.containsKey(COSName.KIDS)
                 && COSName.PAGES.equals(parent.getCOSName(COSName.TYPE)))