Remove the assert in Integer.valueOf()

Joe Darcy joe.darcy at oracle.com
Fri Apr 27 03:29:46 UTC 2012


On 4/24/2012 8:01 AM, Alan Bateman wrote:
> On 24/04/2012 14:56, Rémi Forax wrote:
>>
>> Here, I don't really ask for tweaking something but more to remove an 
>> assert
>> which do something which is unrelated to the current algorithm.
>> In my opinion, it's a debug assert used during the development
>> that slip into the production code. The fact that the range [-128, 
>> 127] should be
>> covered by the cache is mandated by the JLS, but if you really want 
>> an assert
>> you should move it when high and low are initialized (they are final)
>> and not where they are used.
>>
>> I also agree that the inlining heuristic should be changed and
>> I'm sure that everybody that have looked to the inlining heuristic 
>> code of Hotspot will agree with that
>> but this is somehow unrelated to the problem.
>> This is how I've found this assert,
>> it doesn't change the fact that this assert should not be there.
> I added that assert as part of the work of 6807702. You can't use 
> asserts in code that is executed before system initialization is 
> complete and I think this is why we put the assert is valueOf rather 
> than in the initializer. I don't have any objection to removing it, 
> assuming Joe is okay with it too.
>
> -Alan
>
> [1] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/4c3f752993a5

Hi Alan,

I don't object to the assert being removed if asserts or 
assert-equivalent checks are added in the IntegerCache class.

Thanks,

-Joe



More information about the core-libs-dev mailing list