Author: markt Date: Thu Mar 21 10:55:59 2013 New Revision: 1459223 URL: http://svn.apache.org/r1459223 Log: Add the ability to decode a subset of a byte array as this will enable Tomcat to use the decoder more efficiently.
Modified: tomcat/trunk/java/org/apache/tomcat/util/codec/binary/Base64.java tomcat/trunk/java/org/apache/tomcat/util/codec/binary/BaseNCodec.java Modified: tomcat/trunk/java/org/apache/tomcat/util/codec/binary/Base64.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/codec/binary/Base64.java?rev=1459223&r1=1459222&r2=1459223&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/codec/binary/Base64.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/codec/binary/Base64.java Thu Mar 21 10:55:59 2013 @@ -693,7 +693,12 @@ public class Base64 extends BaseNCodec { * @return Array containing decoded data. */ public static byte[] decodeBase64(final byte[] base64Data) { - return new Base64().decode(base64Data); + return decodeBase64(base64Data, 0, base64Data.length); + } + + public static byte[] decodeBase64( + final byte[] base64Data, final int off, final int len) { + return new Base64().decode(base64Data, off, len); } // Implementation of the Encoder Interface Modified: tomcat/trunk/java/org/apache/tomcat/util/codec/binary/BaseNCodec.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/codec/binary/BaseNCodec.java?rev=1459223&r1=1459222&r2=1459223&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/codec/binary/BaseNCodec.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/codec/binary/BaseNCodec.java Thu Mar 21 10:55:59 2013 @@ -377,12 +377,16 @@ public abstract class BaseNCodec impleme */ @Override public byte[] decode(final byte[] pArray) { - if (pArray == null || pArray.length == 0) { - return pArray; + return decode(pArray, 0, pArray.length); + } + + public byte[] decode(final byte[] pArray, final int off, final int len) { + if (pArray == null || len == 0) { + return new byte[0]; } final Context context = new Context(); - decode(pArray, 0, pArray.length, context); - decode(pArray, 0, EOF, context); // Notify decoder of EOF. + decode(pArray, off, len, context); + decode(pArray, off, EOF, context); // Notify decoder of EOF. final byte[] result = new byte[context.pos]; readResults(result, 0, result.length, context); return result; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org