src/hotspot/share/classfile/packageEntry.hpp
changeset 50113 caf115bb98ad
parent 47216 71c04702a3d5
child 52587 6cd56deebb0d
equal deleted inserted replaced
50112:7a2a740815b7 50113:caf115bb98ad
    27 
    27 
    28 #include "classfile/moduleEntry.hpp"
    28 #include "classfile/moduleEntry.hpp"
    29 #include "oops/symbol.hpp"
    29 #include "oops/symbol.hpp"
    30 #include "utilities/growableArray.hpp"
    30 #include "utilities/growableArray.hpp"
    31 #include "utilities/hashtable.hpp"
    31 #include "utilities/hashtable.hpp"
       
    32 #include "utilities/macros.hpp"
    32 #include "utilities/ostream.hpp"
    33 #include "utilities/ostream.hpp"
       
    34 #if INCLUDE_JFR
       
    35 #include "jfr/support/jfrTraceIdExtension.hpp"
       
    36 #endif
       
    37 
    33 
    38 
    34 // A PackageEntry basically represents a Java package.  It contains:
    39 // A PackageEntry basically represents a Java package.  It contains:
    35 //   - Symbol* containing the package's name.
    40 //   - Symbol* containing the package's name.
    36 //   - ModuleEntry* for this package's containing module.
    41 //   - ModuleEntry* for this package's containing module.
    37 //   - a field indicating if the package is exported unqualifiedly or to all
    42 //   - a field indicating if the package is exported unqualifiedly or to all
   102   s2 _classpath_index;
   107   s2 _classpath_index;
   103   bool _must_walk_exports;
   108   bool _must_walk_exports;
   104   // Contains list of modules this package is qualifiedly exported to.  Access
   109   // Contains list of modules this package is qualifiedly exported to.  Access
   105   // to this list is protected by the Module_lock.
   110   // to this list is protected by the Module_lock.
   106   GrowableArray<ModuleEntry*>* _qualified_exports;
   111   GrowableArray<ModuleEntry*>* _qualified_exports;
   107   TRACE_DEFINE_TRACE_ID_FIELD;
   112   JFR_ONLY(DEFINE_TRACE_ID_FIELD;)
   108 
   113 
   109   // Initial size of a package entry's list of qualified exports.
   114   // Initial size of a package entry's list of qualified exports.
   110   enum {QUAL_EXP_SIZE = 43};
   115   enum {QUAL_EXP_SIZE = 43};
   111 
   116 
   112 public:
   117 public:
   195   PackageEntry** next_addr() {
   200   PackageEntry** next_addr() {
   196     return (PackageEntry**)HashtableEntry<Symbol*, mtModule>::next_addr();
   201     return (PackageEntry**)HashtableEntry<Symbol*, mtModule>::next_addr();
   197   }
   202   }
   198 
   203 
   199   // iteration of qualified exports
   204   // iteration of qualified exports
   200   void package_exports_do(ModuleClosure* const f);
   205   void package_exports_do(ModuleClosure* f);
   201 
   206 
   202   TRACE_DEFINE_TRACE_ID_METHODS;
   207   JFR_ONLY(DEFINE_TRACE_ID_METHODS;)
   203 
   208 
   204   // Purge dead weak references out of exported list when any given class loader is unloaded.
   209   // Purge dead weak references out of exported list when any given class loader is unloaded.
   205   void purge_qualified_exports();
   210   void purge_qualified_exports();
   206   void delete_qualified_exports();
   211   void delete_qualified_exports();
   207 
   212