< prev index next >

src/hotspot/share/classfile/moduleEntry.hpp

Print this page




  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  26 #define SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  27 
  28 #include "jni.h"
  29 #include "classfile/classLoaderData.hpp"
  30 #include "classfile/vmSymbols.hpp"
  31 #include "oops/oopHandle.hpp"
  32 #include "oops/symbol.hpp"
  33 #include "runtime/jniHandles.hpp"
  34 #include "runtime/mutexLocker.hpp"
  35 #include "utilities/growableArray.hpp"
  36 #include "utilities/hashtable.hpp"
  37 #include "utilities/macros.hpp"
  38 #include "utilities/ostream.hpp"
  39 #if INCLUDE_JFR
  40 #include "jfr/support/jfrTraceIdExtension.hpp"
  41 #endif
  42 
  43 #define UNNAMED_MODULE "Unnamed Module"

  44 #define JAVAPKG "java"
  45 #define JAVAPKG_LEN 4
  46 #define JAVA_BASE_NAME "java.base"

  47 
  48 class ModuleClosure;
  49 
  50 // A ModuleEntry describes a module that has been defined by a call to JVM_DefineModule.
  51 // It contains:
  52 //   - Symbol* containing the module's name.
  53 //   - pointer to the java.lang.Module for this module.
  54 //   - pointer to the java.security.ProtectionDomain shared by classes defined to this module.
  55 //   - ClassLoaderData*, class loader of this module.
  56 //   - a growable array containg other module entries that this module can read.
  57 //   - a flag indicating if this module can read all unnamed modules.
  58 //
  59 // The Mutex Module_lock is shared between ModuleEntry and PackageEntry, to lock either
  60 // data structure.
  61 class ModuleEntry : public HashtableEntry<Symbol*, mtModule> {
  62 private:
  63   OopHandle _module;                   // java.lang.Module
  64   OopHandle _pd;                       // java.security.ProtectionDomain, cached
  65                                        // for shared classes from this module
  66   ClassLoaderData* _loader_data;




  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  26 #define SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  27 
  28 #include "jni.h"
  29 #include "classfile/classLoaderData.hpp"
  30 #include "classfile/vmSymbols.hpp"
  31 #include "oops/oopHandle.hpp"
  32 #include "oops/symbol.hpp"
  33 #include "runtime/jniHandles.hpp"
  34 #include "runtime/mutexLocker.hpp"
  35 #include "utilities/growableArray.hpp"
  36 #include "utilities/hashtable.hpp"
  37 #include "utilities/macros.hpp"
  38 #include "utilities/ostream.hpp"
  39 #if INCLUDE_JFR
  40 #include "jfr/support/jfrTraceIdExtension.hpp"
  41 #endif
  42 
  43 #define UNNAMED_MODULE "unnamed module"
  44 #define UNNAMED_MODULE_LEN 14
  45 #define JAVAPKG "java"
  46 #define JAVAPKG_LEN 4
  47 #define JAVA_BASE_NAME "java.base"
  48 #define JAVA_BASE_NAME_LEN 9
  49 
  50 class ModuleClosure;
  51 
  52 // A ModuleEntry describes a module that has been defined by a call to JVM_DefineModule.
  53 // It contains:
  54 //   - Symbol* containing the module's name.
  55 //   - pointer to the java.lang.Module for this module.
  56 //   - pointer to the java.security.ProtectionDomain shared by classes defined to this module.
  57 //   - ClassLoaderData*, class loader of this module.
  58 //   - a growable array containg other module entries that this module can read.
  59 //   - a flag indicating if this module can read all unnamed modules.
  60 //
  61 // The Mutex Module_lock is shared between ModuleEntry and PackageEntry, to lock either
  62 // data structure.
  63 class ModuleEntry : public HashtableEntry<Symbol*, mtModule> {
  64 private:
  65   OopHandle _module;                   // java.lang.Module
  66   OopHandle _pd;                       // java.security.ProtectionDomain, cached
  67                                        // for shared classes from this module
  68   ClassLoaderData* _loader_data;


< prev index next >