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: [email protected]
For additional commands, e-mail: [email protected]