Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8212642

Remove SystemDictionary::InitOption enum

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 12
    • 12
    • hotspot
    • b17

      From the old days of HotSpot-Express (hsx), where the same JVM may support multiple versions of the JDK class library, we used the SystemDictionary::InitOption enum to tag "optional" preloaded classes like this in systemDictionary.hpp

      do_klass(reflect_Parameter_klass, java_lang_reflect_Parameter, Opt)

      resolve_preloaded_classes will silently continue if such an optional class fails to load during VM bootstrap.

      However, HotSpot-Express is long gone, and all of these optional classes are defined in java.base. Since java.base is not subsettable, there's no reason for any of them to fail to load.

      Also, classes in systemDictionary_jvmci.hpp are tagged like this. The reason is when EnableJVMCI==false, we don't want to load the JVMCI classes:

      do_klass(JVMCI_klass, jdk_vm_ci_runtime_JVMCI, Jvmci)

      However, using InitOption to accomplish is rather convoluted. It can be simplified.

      We should clean up the code and remove the entire SystemDictionary::InitOption enum.

            iklam Ioi Lam
            iklam Ioi Lam
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: