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

Ioi Lam ioi.lam at oracle.com
Sat May 19 01:46:32 UTC 2018


Hi Yumin,

Thanks for the review.

In some cases, such as create_initial_thread, we must do 
ik->allocate_instance_handle() and JavaCalls::call_special in 2 steps, 
and set some thread states in between the 2 steps.

Also, there are other use of JavaCalls::call_special for invoke instance 
methods that are not constructors.

Therefore, we cannot hide JavaCalls::call_special.

Thanks

- Ioi


On 5/18/18 11:04 AM, yumin qi wrote:
> Hi, Ioi
>
>   Very nice clean-up for Thread creation.
>   One question, should we replace all  the JavaCalls::call_special 
> with JavaCalls::construct_new_instance (there are three versions) and 
> make JavaCalls::call_special an internal implementation? I did see 
> many places using JavaCalls::call_special.
>
> Thanks
> Yumin
>
> On Fri, May 18, 2018 at 9:36 AM, Ioi Lam <ioi.lam at oracle.com 
> <mailto:ioi.lam at oracle.com>> wrote:
>
>     https://bugs.openjdk.java.net/browse/JDK-8203381
>     <https://bugs.openjdk.java.net/browse/JDK-8203381>
>     http://cr.openjdk.java.net/~iklam/jdk11/8203381-construct-new-instance.v01/
>     <http://cr.openjdk.java.net/%7Eiklam/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.
>
>     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-dev mailing list