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 2010/05/09 19:34:20 UTC

svn commit: r942567 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java

Author: lehmi
Date: Sun May  9 17:34:20 2010
New Revision: 942567

URL: http://svn.apache.org/viewvc?rev=942567&view=rev
Log:
PDFBOX-410: small performance improvements. Hints by Peter Lenahan (Peter_Lenahan at ibi dot com) and Lars Torunski (ltorunski at t-online dot de)

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java?rev=942567&r1=942566&r2=942567&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java Sun May  9 17:34:20 2010
@@ -103,7 +103,8 @@ public class COSString extends COSBase
         {
             boolean unicode16 = false;
             char[] chars = value.toCharArray();
-            for( int i=0; i<chars.length; i++ )
+            int length = chars.length;
+            for( int i=0; i<length; i++ )
             {
                 if( chars[i] > 255 )
                 {
@@ -174,15 +175,16 @@ public class COSString extends COSBase
     public static COSString createFromHexString( String hex ) throws IOException
     {
         COSString retval = new COSString();
-        StringBuffer hexBuffer = new StringBuffer( hex.trim() );
+        StringBuilder hexBuffer = new StringBuilder( hex.trim() );
         //if odd number then the last hex digit is assumed to be 0
-        if( hexBuffer.length() % 2 == 1 )
+        if( hexBuffer.length() % 2 != 0 )
         {
-            hexBuffer.append( "0" );
+            hexBuffer.append( '0' );
         }
-        for( int i=0; i<hexBuffer.length();)
+        int length = hexBuffer.length(); 
+        for( int i=0; i<length;)
         {
-            String hexChars = "" + hexBuffer.charAt( i++ ) + hexBuffer.charAt( i++ );
+            String hexChars = String.valueOf(hexBuffer.charAt( i++ )) + hexBuffer.charAt( i++ );
             try
             {
                 retval.append( Integer.parseInt( hexChars, 16 ) );
@@ -202,9 +204,10 @@ public class COSString extends COSBase
      */
     public String getHexString()
     {
-        StringBuffer retval = new StringBuffer( out.size() * 2 );
+        StringBuilder retval = new StringBuilder( out.size() * 2 );
         byte[] data = getBytes();
-        for( int i=0; i<data.length; i++ )
+        int length = data.length;
+        for( int i=0; i<length; i++ )
         {
             retval.append( COSHEXTable.HEX_TABLE[ (data[i]+256)%256 ] );
         }
@@ -318,7 +321,8 @@ public class COSString extends COSBase
         boolean outsideASCII = false;
         //Lets first check if we need to escape this string.
         byte[] bytes = getBytes();
-        for( int i=0; i<bytes.length && !outsideASCII; i++ )
+        int length = bytes.length; 
+        for( int i=0; i<length && !outsideASCII; i++ )
         {
             //if the byte is negative then it is an eight bit byte and is
             //outside the ASCII range.
@@ -327,7 +331,7 @@ public class COSString extends COSBase
         if( !outsideASCII || forceLiteralForm )
         {
             output.write(STRING_OPEN);
-            for( int i=0; i<bytes.length; i++ )
+            for( int i=0; i<length; i++ )
             {
                 int b = (bytes[i]+256)%256;
                 switch( b )
@@ -376,7 +380,7 @@ public class COSString extends COSBase
         else
         {
             output.write(HEX_STRING_OPEN);
-            for(int i=0; i<bytes.length; i++ )
+            for(int i=0; i<length; i++ )
             {
                 output.write( COSHEXTable.TABLE[ (bytes[i]+256)%256 ] );
             }