RFR (T) 8250519: [REDO] Move mirror oops from Universe into OopStorage
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Fri Jul 24 21:46:41 UTC 2020
Dan, Thank you for your thoroughness!
Coleen
On 7/24/20 5:44 PM, Daniel D. Daugherty wrote:
> 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