RFR (S): 8000263: JSR 292: signature types may appear to be unloaded

Christian Thalinger christian.thalinger at oracle.com
Fri Oct 5 12:04:46 PDT 2012


On Oct 5, 2012, at 9:15 AM, Christian Thalinger <christian.thalinger at oracle.com> wrote:

> 
> On Oct 4, 2012, at 5:12 PM, John Rose <john.r.rose at oracle.com> wrote:
> 
>> On Oct 4, 2012, at 3:51 PM, Christian Thalinger wrote:
>> 
>>> http://cr.openjdk.java.net/~twisti/8000263
>>> 
>>> 8000263: JSR 292: signature types may appear to be unloaded
>> 
>> Good work.  I very much like the 'is_public' assertion in 'check_wk_pre_link_klasses'.
>> 
>> I mechanically checked that the whitespace change in systemDictionary.hpp is mixed with no other effects,
>> besides changing some occurrences of Pre or Pre_JSR292 to Pre_Link or Pre?
>> 
>> Consider changing Opt to Pre for LambdaForm, if you agree that is a reasonable cleanup.  That type is no longer optional.
> 
> I tried that but running Queens fails then because we are still using 7 as JDK.
> 
>> 
>> I think the following code would be simpler and more directly correct in 'sharpen_unsafe_type':
>>    if (sharpened_klass != NULL && !sharpened_klass->is_loaded())
>>      return NULL;
> 
> Hmm.  Returning null is okay here?  Have to take a look again.

Yes it is.  Changed.

> 
>> 
>> Issue:  Are intrinsics still properly recognized, even though 'find_well_known_klass' is restricted?
> 
> Why wouldn't they?  But I will check that.

Yes, it is okay.  vmIntrinsics::find_id only uses vmSymbols::SID to match methods.  And after that we rely on m->intrinsic_id().

> 
>> 
>> The function vmIntrinsics::method_for bothers me still.
>> Maybe add a FIXME comment pointing out that it doesn't work for all intrinsics.  Or, add a boolean parameter:
>> 
>>   Klass* SystemDictionary::find_well_known_klass(Symbol* class_name, bool link_all = false) {
>>     ... if (option == Pre_Link || link_all) ...
>>   }
>> 
>> Or, find a way to get rid of vmIntrinsics::method_for, since it is not used much.
> 
> Ah, forgot about it.  I will remove it and send a new webrev.

webrev is updated.  While I was there I moved generic code out of the architecture dependent files and removed unneeded code.

-- Chris

> 
> -- Chris
> 
>> 
>> Thanks,
>> — John



More information about the hotspot-compiler-dev mailing list