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....@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 > >