RFR: JDK-8223400 Replace some enums with static const members in hotspot/runtime
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Mon Oct 21 06:45:47 UTC 2019
Hi,
Can I please have a review for this fix for mixing enums with non-enums?
While the patch itself may not look much to the world, it is
unfortunately blocking future improvements in enabling warnings in the
build.
The first part of the fix, in klass.hpp, is lifted verbatim from Rahul's
fix in JDK-8213416. It was removed from that bug since the rest of it
targeted hotspot/compiler, and the hotspot/runtime part was split out
into this bug. This fix follows Kim Barrett's suggestion that the enums
in question should rather be static consts members.
The second part of the fix, in jvm.cpp, uses the enum JVM_CONSTANT_Class
in a trinary operator together with a unsigned char value, assigning to
an unsigned char array. Unfortunately, JVM_CONSTANT_Class is defined in
include/classfile_constants.h from java.base, so changing it is not
feasible. (I believe it is an exported interface, for starters.) Also,
given the context, it seems reasonable to keep it as an enum. Hence, the
explicit cast to unsigned char in jvm.cpp.
Bug: https://bugs.openjdk.java.net/browse/JDK-8223400
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8223400-fix-hotspot-enum-warnings/webrev.01
/Magnus
More information about the hotspot-runtime-dev
mailing list