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;
}