RFR (S) 8134758: Final String field values should be trusted as stable

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Sep 1 15:36:46 UTC 2015


On 9/1/15 4:34 AM, Aleksey Shipilev wrote:
> On 09/01/2015 04:31 AM, Vladimir Kozlov wrote:
>> Why you check constant.basic_type() == T_OBJECT?
>> In old compact strings version it was value field's type but now it is
>> always array.
>
> Because that line of reasoning got us here: the desynced version that
> gets overlooked for months in Compact String research, and wastes more
> time after the flaw is discovered. I'd prefer to handle all final fields
> in Strings universally, for every possible type, to avoid future surprises.

Okay, may be add comment.

>
>
>> This optimization only done for Sting which are constant. Is it enough
>> for you?
>
> Yes, it's a known constraint. It is still important for, say,
> concatenating with constant Strings literals, which is a very common case.

Good.

Thanks,
Vladimir

>
> Thanks,
> -Aleksey
>


More information about the hotspot-compiler-dev mailing list