CONSTANT_Class_info and L-envelopes

Frederic Parain frederic.parain at
Mon May 11 12:56:04 UTC 2020

> On May 9, 2020, at 21:00, John Rose <john.r.rose at> wrote:
> On May 8, 2020, at 6:15 AM, Frederic Parain <frederic.parain at> 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


More information about the valhalla-dev mailing list