Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6785335

SingleByte.Decoder can be "little faster, especially for short strings"

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 7
    • core-libs
    • None

      Maybe:
               for (int sl = sp + (sr <= dr ? sr : dr); sp != sl; sp++, dp++)
      is little more faster than:
               for (int sl = sp + (sr <= dr ? sr : dr); sp < sl; sp++, dp++)

      -Ulf


      Am 15.12.2008 21:56, Ulf Zibis schrieb:
      > 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
      >

            sherman Xueming Shen
            sherman Xueming Shen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: