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" 

                           loader, module_name, CHECK_NH);

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

- 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