src/share/classes/java/lang/StringCoding.java
Print this page
rev 5382 : 6924259: Remove offset and count fields from java.lang.String
Summary: Removes the use of shared character array buffers by String along with the two fields needed to support the use of shared buffers.
Contributed-by: brian.doherty@oracle.com
*** 248,257 ****
--- 248,258 ----
}
static char[] decode(byte[] ba, int off, int len) {
String csn = Charset.defaultCharset().name();
try {
+ // use "name" version for caching.
return decode(csn, ba, off, len);
} catch (UnsupportedEncodingException x) {
warnUnsupportedCharset(csn);
}
try {
*** 321,330 ****
--- 322,336 ----
return safeTrim(ba, bb.position(), cs, isTrusted);
}
}
}
+ static byte[] encode(String charsetName, char[] ca)
+ throws UnsupportedEncodingException {
+ return encode(charsetName, ca, 0, ca.length);
+ }
+
static byte[] encode(String charsetName, char[] ca, int off, int len)
throws UnsupportedEncodingException
{
StringEncoder se = deref(encoder);
String csn = (charsetName == null) ? "ISO-8859-1" : charsetName;
*** 341,350 ****
--- 347,360 ----
set(encoder, se);
}
return se.encode(ca, off, len);
}
+ static byte[] encode(Charset cs, char[] ca) {
+ return encode(cs, ca, 0, ca.length);
+ }
+
static byte[] encode(Charset cs, char[] ca, int off, int len) {
CharsetEncoder ce = cs.newEncoder();
int en = scale(len, ce.maxBytesPerChar());
byte[] ba = new byte[en];
if (len == 0)
*** 377,389 ****
--- 387,404 ----
}
return safeTrim(ba, bb.position(), cs, isTrusted);
}
}
+ static byte[] encode(char[] ca) {
+ return encode(ca, 0, ca.length);
+ }
+
static byte[] encode(char[] ca, int off, int len) {
String csn = Charset.defaultCharset().name();
try {
+ // use "name" version for caching.
return encode(csn, ca, off, len);
} catch (UnsupportedEncodingException x) {
warnUnsupportedCharset(csn);
}
try {