RFR 8203381 Replace InstanceKlass::allocate_instance_handle with JavaCalls::construct_new_instance

Ioi Lam ioi.lam at oracle.com
Tue May 22 04:24:32 UTC 2018



On 5/20/18 7:05 PM, David Holmes wrote:
> Hi Ioi,
>
> On 19/05/2018 2:34 AM, Ioi Lam wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8203381
>> http://cr.openjdk.java.net/~iklam/jdk11/8203381-construct-new-instance.v01/ 
>>
>>
>> This patch removes a lot of the boilerplate code for allocating a
>> Java object and calling its constructor. Hopefully the code is cleaner
>> and easier to read.
>
> That's a great cleanup! Why didn't we do this years ago! :)
>
> Only nit is that now call_special is replaced with 
> construct_new_instance the argument line indentation is no longer 
> correct.
>
Hi David,

I noticed that there isn't a uniform style of indentation with passing 
function parameters. Usually people indent to the open parenthesis, but 
I am hesitant to do that when the open parenthesis is more than 40 chars 
from the beginning of a line. Otherwise I'll end up with lots of skinny 
lines. They would also run past 80-char width when you have "wide" 
parameters.

   return 
JavaCalls::construct_new_instance(SystemDictionary::Module_klass(),
vmSymbols::java_lang_module_init_signature(),
                           loader, module_name, CHECK_NH);

So if you don't have a big objection, I'll just keep the indentation as is.

Thanks
- Ioi
> Great comments on the Thread construction process too! Hope it didn't 
> take you too long to figure out why you couldn't make the replacement 
> in those cases!
>
> Thanks,
> David
>
>> Also:
>>
>> Added assert(InstanceKlass::is_initialized(), ...) in case where
>> we cannot call JavaCalls::construct_new_instance for thread objects.
>>
>> Replaced unnecessary SystemDictionary::resolve_or_null() calls with
>> SystemDictionary::XXX_klass().
>>
>> Tested with hs-tier[1,2,3,4,5]
>>
>> Thanks
>> - Ioi
>>
>>
>>
>>
>>



More information about the hotspot-runtime-dev mailing list