# HG changeset patch # User martin # Date 1205125002 25200 # Node ID 6c846a8c97d30f5c18cceff82b990c2a51f14fc2 # Parent dfebd2609e773249485f79de66a18ae4867c6fea 6633613: (str) StringCoding optimizations to avoid unnecessary array copies with Charset arg Reviewed-by: iris diff -r dfebd2609e77 -r 6c846a8c97d3 jdk/src/share/classes/java/lang/StringCoding.java --- a/jdk/src/share/classes/java/lang/StringCoding.java Sun Mar 09 21:56:42 2008 -0700 +++ b/jdk/src/share/classes/java/lang/StringCoding.java Sun Mar 09 21:56:42 2008 -0700 @@ -194,8 +194,7 @@ static char[] decode(Charset cs, byte[] ba, int off, int len) { StringDecoder sd = new StringDecoder(cs, cs.name()); - byte[] b = Arrays.copyOf(ba, ba.length); - return sd.decode(b, off, len); + return sd.decode(Arrays.copyOfRange(ba, off, off + len), 0, len); } static char[] decode(byte[] ba, int off, int len) { @@ -293,8 +292,7 @@ static byte[] encode(Charset cs, char[] ca, int off, int len) { StringEncoder se = new StringEncoder(cs, cs.name()); - char[] c = Arrays.copyOf(ca, ca.length); - return se.encode(c, off, len); + return se.encode(Arrays.copyOfRange(ca, off, off + len), 0, len); } static byte[] encode(char[] ca, int off, int len) {