RFR: 8237637: Remove dubious type conversions from oop

Stefan Karlsson stefan.karlsson at oracle.com
Wed Jan 22 13:33:19 UTC 2020


Hi all,

Please review this patch to remove some dubious type conversions from oop.

https://bugs.openjdk.java.net/browse/JDK-8237637

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.

I've split this up into multiple webrevs to make it easier to review:

https://cr.openjdk.java.net/~stefank/8237637/webrev.01/00.promotedObject/
https://cr.openjdk.java.net/~stefank/8237637/webrev.01/01.oopStar/
https://cr.openjdk.java.net/~stefank/8237637/webrev.01/02.jobject/
https://cr.openjdk.java.net/~stefank/8237637/webrev.01/03.address/
https://cr.openjdk.java.net/~stefank/8237637/webrev.01/03.address/
https://cr.openjdk.java.net/~stefank/8237637/webrev.01/05.voidStarVolatiles/
https://cr.openjdk.java.net/~stefank/8237637/webrev.01/06.heapWord/

All changes combined:
https://cr.openjdk.java.net/~stefank/8237637/webrev.01/all/

Testing: builds pass, tier1-3 running

Thanks,
StefanK



More information about the hotspot-dev mailing list