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());
}
/**