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

SystemDictionary::quick_resolve need guarded by INCLUDE_CDS

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 15
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b13
    • OS:
      generic

      Description

      See bug https://bugs.openjdk.java.net/browse/JDK-8240254

      This is for the new added quick_resolve function investigation.

      diff -r 624d51be7acd src/hotspot/share/classfile/systemDictionary.cpp
      --- a/src/hotspot/share/classfile/systemDictionary.cpp Fri Feb 28 12:49:37 2020 -0800
      +++ b/src/hotspot/share/classfile/systemDictionary.cpp Fri Feb 28 17:53:35 2020 -0800
      @@ -1918,6 +1918,7 @@
       }
       #endif

      +#if INCLUDE_CDS
       void SystemDictionary::quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS) {
         assert(!Universe::is_fully_initialized(), "We can make short cuts only during VM initialization");
         assert(klass->is_shared(), "Must be shared class");
      @@ -1948,6 +1949,7 @@
         add_to_hierarchy(klass, CHECK);
         assert(klass->is_loaded(), "Must be in at least loaded state");
       }
      +#endif

       bool SystemDictionary::resolve_wk_klass(WKID id, TRAPS) {
         assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
      diff -r 624d51be7acd src/hotspot/share/classfile/systemDictionary.hpp
      --- a/src/hotspot/share/classfile/systemDictionary.hpp Fri Feb 28 12:49:37 2020 -0800
      +++ b/src/hotspot/share/classfile/systemDictionary.hpp Fri Feb 28 17:53:35 2020 -0800
      @@ -634,7 +634,7 @@
         // Resolve well-known classes so they can be used like SystemDictionary::String_klass()
         static void resolve_well_known_classes(TRAPS);
         // quick resolve using CDS for well-known classes only.
      - static void quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS);
      + static void quick_resolve(InstanceKlass* klass, ClassLoaderData* loader_data, Handle domain, TRAPS) NOT_CDS_RETURN;

         // Class loader constraints
         static void check_constraints(unsigned int hash,

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                minqi Yumin Qi
                Reporter:
                minqi Yumin Qi
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: