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:55:55 UTC
svn commit: r1880878 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
Author: lehmi
Date: Sat Aug 15 15:55:55 2020
New Revision: 1880878
URL: http://svn.apache.org/viewvc?rev=1880878&view=rev
Log:
PDFBOX-4892: removed unneeded brackets, return result immediately, extract parseCOSNumber
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.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=1880878&r1=1880877&r2=1880878&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 Sat Aug 15 15:55:55 2020
@@ -487,7 +487,6 @@ public abstract class BaseParser
case '5':
case '6':
case '7':
- {
StringBuilder octal = new StringBuilder();
octal.append( next );
c = source.read();
@@ -522,13 +521,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
@@ -805,15 +801,11 @@ public abstract class BaseParser
*/
protected COSBase parseDirObject() throws IOException
{
- COSBase retval = null;
-
skipSpaces();
- int nextByte = source.peek();
- char c = (char)nextByte;
+ char c = (char) source.peek();
switch(c)
{
case '<':
- {
// pull off first left bracket
int leftBracket = source.read();
// check for second left bracket
@@ -822,76 +814,41 @@ 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, false);
- retval = COSNull.NULL;
- break;
- }
+ return COSNull.NULL;
case 't':
- {
readExpectedString(TRUE, false);
- retval = COSBoolean.TRUE;
- break;
- }
+ return COSBoolean.TRUE;
case 'f':
- {
readExpectedString(FALSE, false);
- retval = COSBoolean.FALSE;
- break;
- }
+ return COSBoolean.FALSE;
case 'R':
source.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 = source.read();
- c = (char)ic;
- while( Character.isDigit( c )||
- c == '-' ||
- c == '+' ||
- c == '.' ||
- c == 'E' ||
- c == 'e' )
- {
- buf.append( c );
- ic = source.read();
- c = (char)ic;
- }
- if( ic != -1 )
- {
- source.unread(ic);
- }
- retval = COSNumber.get( buf.toString() );
+ return parseCOSNumber();
}
else
{
@@ -915,8 +872,25 @@ public abstract class BaseParser
}
}
}
+ return null;
+ }
+
+ private COSNumber parseCOSNumber() throws IOException
+ {
+ StringBuilder buf = new StringBuilder();
+ int ic = source.read();
+ char c = (char) ic;
+ while (Character.isDigit(c) || c == '-' || c == '+' || c == '.' || c == 'E' || c == 'e')
+ {
+ buf.append(c);
+ ic = source.read();
+ c = (char) ic;
+ }
+ if (ic != -1)
+ {
+ source.unread(ic);
}
- return retval;
+ return COSNumber.get(buf.toString());
}
/**