RFR: JDK-8211279: Verify missing object equals barriers
Aleksey Shipilev
shade at redhat.com
Mon Oct 8 16:34:46 UTC 2018
On 10/08/2018 06:32 PM, Roman Kennke wrote:
>> *) I always get a bit uneasy seeing the casts to (void*) like here:
>>
>> 413 static bool equals(oop o1, oop o2) { return (void*)o1 == (void*)o2; }
>>
>> ...but I think this comparison is well-defined in C++ with the semantics we want.
>
> What would you suggest? reinterpret_cast<void*>(..) better?
No, from my reading of C++ spec casting to void* is safe here. Just thinking out loud.
>> *) So, if CHECK_UNHANDLED_OOPS is not defined, this declaration is inaccessible, and asserts that
>> use it would fail to compile? I think this ifdef is not needed here, but rather it should be around
>> the asserts in oop::operator== and !=?
>>
>> 133 #ifdef CHECK_UNHANDLED_OOPS
>> 134 virtual bool oop_equals_operator_allowed() { return true; }
>> 135 #endif
>> 136
>
> It already *is* around the whole (oop class) declaration in
> oopsHierarchy.hpp, that's the only user of the check so I put this under
> #ifdef CHECK_UNHANDLED_OOPS too, but I can remove this #ifdef if you
> prefer. Let me know?
Ah! Missed that. No, this is fine then.
-Aleksey
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20181008/20399aa3/signature.asc>
More information about the hotspot-gc-dev
mailing list