RFR: 8262328: Templatize JVMFlag boilerplate access methods

Ioi Lam iklam at openjdk.java.net
Thu Apr 1 23:40:41 UTC 2021


We have a bunch of boilerplate method like:

JVMFlagAccess::boolAtPut (JVMFlag* f, bool* v, JVMFlagOrigin origin)
JVMFlagAccess::intAtPut (JVMFlag* f, int* v, JVMFlagOrigin origin)
JVMFlagAccess::uintAtPut (JVMFlag* f, uint* v, JVMFlagOrigin origin)
...

Similarly, we also have 8 different functions: JVMFlag::{set_bool, set_int, set_intx, ...}

We should replace such patterns with

template <typename T>
JVMFlagAccess::set(JVMFlag* f, T* value, JVMFlagOrigin origin)

This would allow us to templatize the 8x boilerplate functions in writeableFlags.cpp.

The flag access code in whitebox.cpp can also be improved.

-------------

Commit messages:
 - added test case
 - removed JVMFlag::set_##type() functions
 - fixed merge
 - Merge branch 'master' into 8262328-templatize-jvmflag-boilerplate-methods
 - static_assert to disable SET_FLAG_XXX on ccstr flags
 - more cleanup
 - step2
 - 8262328: Templatize JVMFlag boilerplate methods

Changes: https://git.openjdk.java.net/jdk/pull/3318/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3318&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8262328
  Stats: 325 lines in 11 files changed: 71 ins; 135 del; 119 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3318.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3318/head:pull/3318

PR: https://git.openjdk.java.net/jdk/pull/3318


More information about the hotspot-dev mailing list