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