review request (L): 7001379: bootstrap method data needs to be moved from constant pool to a classfile attribute
Christian Thalinger
christian.thalinger at oracle.com
Tue Nov 30 00:08:24 PST 2010
On Nov 30, 2010, at 4:35 AM, John Rose wrote:
>> src/share/vm/oops/constantPoolOop.hpp:
>>
>> - void copy_entry_to(int from_i, constantPoolHandle to_cp, int to_i, TRAPS);
>> + static void copy_entry_to(constantPoolHandle from_cp, int from_i, constantPoolHandle to_cp, int to_i, TRAPS);
>>
>> Maybe I'm missing the obvious here but why do need to pass a handle in? There is nothing fancy going on in that method.
>
> In principle, the call to 'klass_at' could trigger a GC. We know it won't, because of the tag of the CP entry. But that requires a private, invisible contract with the present implementation of 'klass_at'. It is safer to use the handle. Since I had to introduce a handle in copy_cp_to_impl, it was natural to move it down into the per-entry routine.
I see. That makes sense.
> Thanks. Can I cite you as a reviewer on both change sets?
Sure.
-- Christian
More information about the hotspot-compiler-dev
mailing list