Templatize JVMFlag boilerplate access methods

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Fixed
    • Priority: P4
    • 17
    • Affects Version/s: 17
    • Component/s: hotspot
    • b18

      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)
      JVMFlagAccess::intxAtPut (JVMFlag* f, intx* v, JVMFlagOrigin origin)
      JVMFlagAccess::uintxAtPut (JVMFlag* f, uintx* v, JVMFlagOrigin origin)
      JVMFlagAccess::uint64_tAtPut(JVMFlag* f, uint64_t* v, JVMFlagOrigin origin)
      JVMFlagAccess::size_tAtPut (JVMFlag* f, size_t* v, JVMFlagOrigin origin)
      JVMFlagAccess::doubleAtPut (JVMFlag* f, double* 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.

            Assignee:
            Ioi Lam
            Reporter:
            Ioi Lam
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: