You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2020/08/15 15:58:08 UTC

svn commit: r1880880 - in /pdfbox/branches/issue45: ./ pdfbox/ pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java

Author: lehmi
Date: Sat Aug 15 15:58:07 2020
New Revision: 1880880

URL: http://svn.apache.org/viewvc?rev=1880880&view=rev
Log:
PDFBOX-4892: removed unneeded brackets, return result immediately, extract parseCOSNumber

Modified:
    pdfbox/branches/issue45/   (props changed)
    pdfbox/branches/issue45/pdfbox/   (props changed)
    pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java

Propchange: pdfbox/branches/issue45/
------------------------------------------------------------------------------
  Merged /pdfbox/branches/2.0:r1880879

Propchange: pdfbox/branches/issue45/pdfbox/
------------------------------------------------------------------------------
  Merged /pdfbox/branches/2.0/pdfbox:r1880879

Modified: pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java?rev=1880880&r1=1880879&r2=1880880&view=diff
==============================================================================
--- pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java (original)
+++ pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java Sat Aug 15 15:58:07 2020
@@ -485,7 +485,6 @@ public abstract class BaseParser
                     case '5':
                     case '6':
                     case '7':
-                    {
                         StringBuilder octal = new StringBuilder();
                         octal.append( next );
                         c = seqSource.read();
@@ -520,13 +519,10 @@ public abstract class BaseParser
                         }
                         out.write(character);
                         break;
-                    }
                     default:
-                    {
                         // dropping the backslash
                         // see 7.3.4.2 Literal Strings for further information
                         out.write(next);
-                    }
                 }
             }
             else
@@ -847,15 +843,11 @@ public abstract class BaseParser
      */
     protected COSBase parseDirObject() throws IOException
     {
-        COSBase retval = null;
-
         skipSpaces();
-        int nextByte = seqSource.peek();
-        char c = (char)nextByte;
+        char c = (char)seqSource.peek();
         switch(c)
         {
         case '<':
-        {
             // pull off first left bracket
             int leftBracket = seqSource.read();
             // check for second left bracket
@@ -864,92 +856,57 @@ public abstract class BaseParser
             if(c == '<')
             {
 
-                retval = parseCOSDictionary();
+                COSDictionary retval = parseCOSDictionary();
                 skipSpaces();
+                return retval;
             }
             else
             {
-                retval = parseCOSString();
+                return parseCOSString();
             }
-            break;
-        }
         case '[':
-        {
             // array
-            retval = parseCOSArray();
-            break;
-        }
+            return parseCOSArray();
         case '(':
-            retval = parseCOSString();
-            break;
+            return parseCOSString();
         case '/':   
             // name
-            retval = parseCOSName();
-            break;
+            return parseCOSName();
         case 'n':   
-        {
             // null
             readExpectedString(NULL);
-            retval = COSNull.NULL;
-            break;
-        }
+            return COSNull.NULL;
         case 't':
-        {
             String trueString = new String( seqSource.readFully(4), ISO_8859_1 );
             if( trueString.equals( TRUE ) )
             {
-                retval = COSBoolean.TRUE;
+                return COSBoolean.TRUE;
             }
             else
             {
                 throw new IOException( "expected true actual='" + trueString + "' " + seqSource + 
                         "' at offset " + seqSource.getPosition());
             }
-            break;
-        }
         case 'f':
-        {
             String falseString = new String( seqSource.readFully(5), ISO_8859_1 );
             if( falseString.equals( FALSE ) )
             {
-                retval = COSBoolean.FALSE;
+                return COSBoolean.FALSE;
             }
             else
             {
                 throw new IOException( "expected false actual='" + falseString + "' " + seqSource + 
                         "' at offset " + seqSource.getPosition());
             }
-            break;
-        }
         case 'R':
             seqSource.read();
-            retval = new COSObject(null);
-            break;
+            return new COSObject(null);
         case (char)-1:
             return null;
         default:
-        {
             if( Character.isDigit(c) || c == '-' || c == '+' || c == '.')
             {
-                StringBuilder buf = new StringBuilder();
-                int ic = seqSource.read();
-                c = (char)ic;
-                while( Character.isDigit( c )||
-                        c == '-' ||
-                        c == '+' ||
-                        c == '.' ||
-                        c == 'E' ||
-                        c == 'e' )
-                {
-                    buf.append( c );
-                    ic = seqSource.read();
-                    c = (char)ic;
-                }
-                if( ic != -1 )
-                {
-                    seqSource.unread(ic);
-                }
-                retval = COSNumber.get( buf.toString() );
+                return parseCOSNumber();
             }
             else
             {
@@ -973,8 +930,25 @@ public abstract class BaseParser
                 }
             }
         }
+        return null;
+    }
+
+    private COSNumber parseCOSNumber() throws IOException
+    {
+        StringBuilder buf = new StringBuilder();
+        int ic = seqSource.read();
+        char c = (char) ic;
+        while (Character.isDigit(c) || c == '-' || c == '+' || c == '.' || c == 'E' || c == 'e')
+        {
+            buf.append(c);
+            ic = seqSource.read();
+            c = (char) ic;
         }
-        return retval;
+        if (ic != -1)
+        {
+            seqSource.unread(ic);
+        }
+        return COSNumber.get(buf.toString());
     }
 
     /**