CONSTANT_Class_info and L-envelopes
Frederic Parain
frederic.parain at oracle.com
Mon May 11 12:56:04 UTC 2020
> On May 9, 2020, at 21:00, John Rose <john.r.rose at oracle.com> wrote:
>
> On May 8, 2020, at 6:15 AM, Frederic Parain <frederic.parain at oracle.com> wrote:
>>
>> The problem with having two entries representing
>> a symbolic reference to the same class is that there’s no guarantee
>> that the resolution of these two entries will produce the same result.
>
> This problem has existed in class files from day one,
> since there is no rule of any sort which would exclude
> duplicate CP entries.
I’m unpleasantly surprised, but it explains why I was not able to
find any rule about CP unicity in the spec.
So far, I’ve never seen a duplicate entry in class file generated
by javac, which aggressively optimize the constant pool (even going
to share UTF-8 entries used by Class and String entries).
> I don’t see why we need to exclude
> this extra kind of duplication, and the code for checking
> it will distract us from other things.
>
With the dual notation, we just give users one more chance to shoot
themselves in the foot. But if the accepted approach to this problem
is to consider it as a user error, then I can remove the verification
code.
Fred
More information about the valhalla-dev
mailing list