Author: ggregory
Date: Thu Aug 30 14:42:05 2012
New Revision: 1378965

URL: http://svn.apache.org/viewvc?rev=1378965&view=rev
Log:
Refactor: Use byte[] from ensureBufferSize() instead of always deferencing it 
from the context. Use final on lvars to clarify intent and avoid potential bugs.

Modified:
    
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Base64.java

Modified: 
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Base64.java
URL: 
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Base64.java?rev=1378965&r1=1378964&r2=1378965&view=diff
==============================================================================
--- 
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Base64.java
 (original)
+++ 
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/Base64.java
 Thu Aug 30 14:42:05 2012
@@ -339,30 +339,30 @@ public class Base64 extends BaseNCodec {
             switch (context.modulus) { // 0-2
                 case 1 : // 8 bits = 6 + 2
                     // top 6 bits:
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea >> 2) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
>> 2) & MASK_6BITS];
                     // remaining 2:
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea << 4) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
<< 4) & MASK_6BITS];
                     // URL-SAFE skips the padding to further reduce size.
                     if (encodeTable == STANDARD_ENCODE_TABLE) {
-                        context.buffer[context.pos++] = PAD;
-                        context.buffer[context.pos++] = PAD;
+                        buffer[context.pos++] = PAD;
+                        buffer[context.pos++] = PAD;
                     }
                     break;
 
                 case 2 : // 16 bits = 6 + 6 + 4
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea >> 10) & MASK_6BITS];
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea >> 4) & MASK_6BITS];
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea << 2) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
>> 10) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
>> 4) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
<< 2) & MASK_6BITS];
                     // URL-SAFE skips the padding to further reduce size.
                     if (encodeTable == STANDARD_ENCODE_TABLE) {
-                        context.buffer[context.pos++] = PAD;
+                        buffer[context.pos++] = PAD;
                     }
                     break;
             }
             context.currentLinePos += context.pos - savedPos; // keep track of 
current line position
             // if currentPos == 0 we are at the start of a line, so don't add 
CRLF
             if (lineLength > 0 && context.currentLinePos > 0) {
-                System.arraycopy(lineSeparator, 0, context.buffer, 
context.pos, lineSeparator.length);
+                System.arraycopy(lineSeparator, 0, buffer, context.pos, 
lineSeparator.length);
                 context.pos += lineSeparator.length;
             }
         } else {
@@ -375,13 +375,13 @@ public class Base64 extends BaseNCodec {
                 }
                 context.ibitWorkArea = (context.ibitWorkArea << 8) + b; //  
BITS_PER_BYTE
                 if (0 == context.modulus) { // 3 bytes = 24 bits = 4 * 6 bits 
to extract
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea >> 18) & MASK_6BITS];
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea >> 12) & MASK_6BITS];
-                    context.buffer[context.pos++] = 
encodeTable[(context.ibitWorkArea >> 6) & MASK_6BITS];
-                    context.buffer[context.pos++] = 
encodeTable[context.ibitWorkArea & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
>> 18) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
>> 12) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[(context.ibitWorkArea 
>> 6) & MASK_6BITS];
+                    buffer[context.pos++] = encodeTable[context.ibitWorkArea & 
MASK_6BITS];
                     context.currentLinePos += BYTES_PER_ENCODED_BLOCK;
                     if (lineLength > 0 && lineLength <= 
context.currentLinePos) {
-                        System.arraycopy(lineSeparator, 0, context.buffer, 
context.pos, lineSeparator.length);
+                        System.arraycopy(lineSeparator, 0, buffer, 
context.pos, lineSeparator.length);
                         context.pos += lineSeparator.length;
                         context.currentLinePos = 0;
                     }
@@ -425,14 +425,14 @@ public class Base64 extends BaseNCodec {
         }
         for (int i = 0; i < inAvail; i++) {
             final byte[] buffer = ensureBufferSize(decodeSize, context);
-            byte b = in[inPos++];
+            final byte b = in[inPos++];
             if (b == PAD) {
                 // We're done.
                 context.eof = true;
                 break;
             } else {
                 if (b >= 0 && b < DECODE_TABLE.length) {
-                    int result = DECODE_TABLE[b];
+                    final int result = DECODE_TABLE[b];
                     if (result >= 0) {
                         context.modulus = (context.modulus+1) % 
BYTES_PER_ENCODED_BLOCK;
                         context.ibitWorkArea = (context.ibitWorkArea << 
BITS_PER_ENCODED_BYTE) + result;


Reply via email to