RFR (T) 8250519: [REDO] Move mirror oops from Universe into OopStorage

Daniel D. Daugherty daniel.daugherty at oracle.com
Fri Jul 24 21:44:18 UTC 2020


On 7/24/20 5:37 PM, Daniel D. Daugherty wrote:
> On 7/24/20 5:07 PM, coleen.phillimore at oracle.com wrote:
>> Summary: The original patch but add a null pointer check so an 
>> OopHandle is not created if a NULL is read from the archive.
>>
>> If a NULL is read from the archive, we shouldn't create an OopHandle 
>> for it because one will be created in initialize_basic_type_mirrors.  
>> The assert added in the previous patch I pushed detected that.
>>
>> incremental change to original change: 
>> http://cr.openjdk.java.net/~coleenp/2020/8250519.01.incr/webrev
>> full webrev at 
>> http://cr.openjdk.java.net/~coleenp/2020/8250519.01/webrev
>>
>> Retested with tier1-3.
>>
>> Thanks,
>> Coleen
>
> Okay. So I compared this patch:
>
> http://cr.openjdk.java.net/~coleenp/2020/8249938.02/webrev/open.patch
>
> with this patch:
>
> http://cr.openjdk.java.net/~coleenp/2020/8250519.01/webrev/open.patch

Okay. I looked at the bits that were pushed using 8249938 (changeset 
e9c7deca9a98)
and those bits don't have the code below either.

The patch above compared with the bits that were pushed using 8249938 
(changeset
e9c7deca9a98) only shows the change described above so we're good here.

Thumbs up!

Dan

>
> And in addition to the change described above, there are two changes
> in the original patch that are not in the new patch:
>
> --- old/src/hotspot/share/oops/oopHandle.hpp    2020-07-23 
> 21:40:56.177635044 -0400
> +++ new/src/hotspot/share/oops/oopHandle.hpp    2020-07-23 
> 21:40:55.717623090 -0400
> @@ -52,6 +52,8 @@
>
>    inline void release(OopStorage* storage);
>
> +  inline void replace(oop obj);
> +
>    // Used only for removing handle.
>    oop* ptr_raw() const { return _obj; }
>  };
> --- old/src/hotspot/share/oops/oopHandle.inline.hpp    2020-07-23 
> 21:40:56.721649181 -0400
> +++ new/src/hotspot/share/oops/oopHandle.inline.hpp    2020-07-23 
> 21:40:56.257637123 -0400
> @@ -54,4 +54,10 @@
>    }
>  }
>
> +inline void OopHandle::replace(oop obj) {
> +  oop* ptr = ptr_raw();
> +  assert(ptr != NULL, "should not use replace");
> +  NativeAccess<>::oop_store(ptr, obj);
> +}
> +
>  #endif // SHARE_OOPS_OOPHANDLE_INLINE_HPP
>
> So it looks like you are removing this OopHandle::replace() function
> also. Is that intentional?
>
> Dan



More information about the hotspot-runtime-dev mailing list