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 {