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 2023/12/14 15:47:46 UTC

svn commit: r1914661 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser: BaseParser.java COSParser.java

Author: tilman
Date: Thu Dec 14 15:47:46 2023
New Revision: 1914661

URL: http://svn.apache.org/viewvc?rev=1914661&view=rev
Log:
PDFBOX-5660: refactor usage of isEndOfName() + use switch + use static where possible, by Axel Howind

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java?rev=1914661&r1=1914660&r2=1914661&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java Thu Dec 14 15:47:46 2023
@@ -758,9 +758,27 @@ public abstract class BaseParser
      */
     protected boolean isEndOfName(int ch)
     {
-        return ch == ASCII_SPACE || ch == ASCII_CR || ch == ASCII_LF || ch == 9 || ch == '>' ||
-               ch == '<' || ch == '[' || ch =='/' || ch ==']' || ch ==')' || ch =='(' || 
-               ch == 0 || ch == '\f' || ch == '%';
+        switch (ch)
+        {
+        case ASCII_SPACE:
+        case ASCII_CR:
+        case ASCII_LF:
+        case 9:
+        case '>':
+        case '<':
+        case '[':
+        case '/':
+        case ']':
+        case ')':
+        case '(':
+        case 0:
+        case '\f':
+        case '%':
+        case -1:
+            return true;
+        default:
+            return false;
+        }
     }
 
     /**
@@ -774,9 +792,9 @@ public abstract class BaseParser
         readExpectedChar('/');
         ByteArrayOutputStream buffer = new ByteArrayOutputStream();
         int c = source.read();
-        while (c != -1)
+        while (!isEndOfName(c))
         {
-            int ch = c;
+            final int ch = c;
             if (ch == '#')
             {
                 int ch1 = source.read();
@@ -814,10 +832,6 @@ public abstract class BaseParser
                     buffer.write(ch);
                 }
             }
-            else if (isEndOfName(ch))
-            {
-                break;
-            }
             else
             {
                 buffer.write(ch);
@@ -967,7 +981,7 @@ public abstract class BaseParser
         skipSpaces();
         StringBuilder buffer = new StringBuilder();
         int c = source.read();
-        while( !isEndOfName((char)c) && c != -1 )
+        while (!isEndOfName(c))
         {
             buffer.append( (char)c );
             c = source.read();
@@ -1174,10 +1188,20 @@ public abstract class BaseParser
      * @param c The character to check against whitespace
      * @return true if the character is a whitespace character.
      */
-    protected boolean isWhitespace( int c )
+    protected static boolean isWhitespace( int c )
     {
-        return c == 0 || c == 9 || c == 12  || c == ASCII_LF
-        || c == ASCII_CR || c == ASCII_SPACE;
+        switch (c)
+        {
+        case 0:
+        case 9:
+        case 12:
+        case ASCII_LF:
+        case ASCII_CR:
+        case ASCII_SPACE:
+            return true;
+        default:
+            return false;
+        }
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1914661&r1=1914660&r2=1914661&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java Thu Dec 14 15:47:46 2023
@@ -1757,7 +1757,7 @@ public class COSParser extends BaseParse
             skipSpaces();
             for(int i = 0; i < count; i++)
             {
-                if(source.isEOF() || isEndOfName((char)source.peek()))
+                if (source.isEOF() || isEndOfName(source.peek()))
                 {
                     break;
                 }