RFR: 8012665: CharSequence.chars, CharSequence.codePoints (original) (raw)
Henry Jen henry.jen at oracle.com
Mon Apr 29 09:47:57 PDT 2013
- Previous message: RFR: 8012665: CharSequence.chars, CharSequence.codePoints
- Next message: RFR: 8012665: CharSequence.chars, CharSequence.codePoints
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Martin,
Thanks for the comment, I looked at this when I first saw a similar comment in the code, and didn't change it because the charCount() is a small operation. The code is just,
codePoint >= MINSUPPLEMENTARYCODEPOINT ? 2 : 1;
Another reason I didn't change it is to avoid repeated code.
I suspect there is much to gain. We can follow up this in a separate issue and get this version in first before feature freeze?
Cheers, Henry
On 04/25/2013 04:14 PM, Martin Buchholz wrote:
I think core library code should write the slightly lower-level code for performance
+ int cp = Character.codePointAt(CharSequence.this, cur); + cur += Character.charCount(cp); int length = length(); if (cur == length) throw NSEE; char c1 = charAt(cur++), c2; if (!isHighSurrogate(c1) || cur == length || !isLowSurrogate(c2 = charAt(cur)) return c1; cur++; return toCodePoint(c1, c2);
On Thu, Apr 25, 2013 at 1:25 PM, Henry Jen <henry.jen at oracle.com_ _<mailto:henry.jen at oracle.com>> wrote: Hi, Please review two default methods add to CharSequence returns IntStream of char value or code point value. http://cr.openjdk.java.net/~henryjen/tl/8012665.0/webrev/ The synchronization test is relieved so lambda and other synthetic method is not tested. If synchronization is needed for those two default methods, subclass should override the methods. With charAt and codePointAt properly synchronized, the default implementation is sufficient. However as noted, if the sequence is mutated while the stream is being read, the result is undefined. Cheers, Henry
- Previous message: RFR: 8012665: CharSequence.chars, CharSequence.codePoints
- Next message: RFR: 8012665: CharSequence.chars, CharSequence.codePoints
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]