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

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Not an Issue
    • Priority: P4
    • None
    • Affects Version/s: 7
    • Component/s: 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
      >

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

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: