hg: jdk7/tl/jdk: 6642323: Speeding up Single Byte Decoders; ...

Ulf Zibis Ulf.Zibis at gmx.de
Mon Dec 15 12:56:21 PST 2008


Maybe little faster, especially for short strings:

       private CoderResult decodeArrayLoop(ByteBuffer src, CharBuffer 
dst) {
           byte[] sa = src.array();
           int sp = src.arrayOffset() + src.position();
           int sr = src.remaining();  // faster than ... 
src.arrayOffset() + src.limit()

           char[] da = dst.array();
           int dp = dst.arrayOffset() + dst.position();
           int dr = dst.remaining(); // dl is never used

           for (int sl = sp + (sr <= dr ? sr : dr); sp < sl; sp++, dp++)
               if ((da[dp] = decode(sa[sp])) == UNMAPPABLE_DECODING)
                   return withResult(CoderResult.unmappableForLength(1), 
src, sp, dst, dp);
           return withResult(sr <= dr ? CoderResult.UNDERFLOW : 
CoderResult.OVERFLOW, src, sp, dst, dp);
       }

Regards,
Ulf


Am 10.12.2008 23:10, xueming.shen at sun.com schrieb:
> Changeset: b89ba9a6d9a6
> Author:    sherman
> Date:      2008-12-10 14:03 -0800
> URL:       http://hg.openjdk.java.net/jdk7/tl/jdk/rev/b89ba9a6d9a6
>
> 6642323: Speeding up Single Byte Decoders
> 6642328: Speeding up Single Byte Encoders
> Summary: re-implementation of mapping based sbcs charts
> Reviewed-by: alanb
>
>   




More information about the serviceability-dev mailing list