When running with fastdebug and CHECK_UNHANDLED_OOPS oop is not a simple oopDesc* but a class. This class has a number of type conversions with the comment:
// Explict user conversions
However, these are not only *explicit* conversions. They can be invoked implicitly as well.
I propose that we get rid of most of these and only leave these two:
operator void* () const
operator oopDesc* () const
so that we get better type safety in the code.
// Explict user conversions
However, these are not only *explicit* conversions. They can be invoked implicitly as well.
I propose that we get rid of most of these and only leave these two:
operator void* () const
operator oopDesc* () const
so that we get better type safety in the code.
- relates to
-
JDK-8237847 Zero builds fail after JDK-8237637 (Remove dubious type conversions from oop)
- Closed
-
JDK-8237913 G1CollectedHeap::heap_region_containing shouldn't be a template
- Resolved
-
JDK-8238272 Eliminate cast_from_oop to narrowOop*
- Resolved
-
JDK-8240246 Avoid cast_to_oop from char*
- Resolved
-
JDK-8237821 Shenandoah: build broken after JDK-8237637 (Remove dubious type conversions from oop)
- Closed