RFR (S) 8136500: Integer/Long getChars and stringSize should be more idiomatic

Peter Levart peter.levart at gmail.com
Tue Nov 24 17:27:57 UTC 2015



On 11/24/2015 06:22 PM, Peter Levart wrote:
>
>
> On 11/24/2015 06:11 PM, Peter Levart wrote:
>>>             byte r = (byte)((q * 100 - i) & 0x7F);
>>>             // byte allows the compiler to use byte wide addressing 
>>> opcodes
>>>             // which have smaller footprint and are potentially faster
>>>             // .. & 0x7F may additionally save negative bound check
>>>             buf[(byte)(--index & 0x7F)] = DigitOnes[r];
>>>             buf[(byte)(--index & 0x7F)] = DigitTens[r];
>>
>> ...but index can be large and overflow byte range. Imagine 
>> concatenating into a String with target length > 127 ... 
>
> .. for addressing DigitOnes and DigitTens it is ok and might be 
> faster, as you say.
>
> If DigitOnes and DigitTens are extended for 28 ignored zero slots, it 
> may save the upper bound check too.
>
> Regards, Peter
>

I think that the index of code idiomatism has reached the local maximum 
and is now falling ... ;-)




More information about the core-libs-dev mailing list