hotspot/src/share/vm/classfile/classLoader.hpp
changeset 13195 be27e1b6a4b9
parent 8921 14bfe81f2a9d
child 13963 e5b53c306fb5
equal deleted inserted replaced
13099:64752e56d721 13195:be27e1b6a4b9
    31 // The VM class loader.
    31 // The VM class loader.
    32 #include <sys/stat.h>
    32 #include <sys/stat.h>
    33 
    33 
    34 
    34 
    35 // Meta-index (optional, to be able to skip opening boot classpath jar files)
    35 // Meta-index (optional, to be able to skip opening boot classpath jar files)
    36 class MetaIndex: public CHeapObj {
    36 class MetaIndex: public CHeapObj<mtClass> {
    37  private:
    37  private:
    38   char** _meta_package_names;
    38   char** _meta_package_names;
    39   int    _num_meta_package_names;
    39   int    _num_meta_package_names;
    40  public:
    40  public:
    41   MetaIndex(char** meta_package_names, int num_meta_package_names);
    41   MetaIndex(char** meta_package_names, int num_meta_package_names);
    44 };
    44 };
    45 
    45 
    46 
    46 
    47 // Class path entry (directory or zip file)
    47 // Class path entry (directory or zip file)
    48 
    48 
    49 class ClassPathEntry: public CHeapObj {
    49 class ClassPathEntry: public CHeapObj<mtClass> {
    50  private:
    50  private:
    51   ClassPathEntry* _next;
    51   ClassPathEntry* _next;
    52  public:
    52  public:
    53   // Next entry in class path
    53   // Next entry in class path
    54   ClassPathEntry* next()              { return _next; }
    54   ClassPathEntry* next()              { return _next; }
   139   NOT_PRODUCT(bool is_rt_jar();)
   139   NOT_PRODUCT(bool is_rt_jar();)
   140 };
   140 };
   141 
   141 
   142 class PackageHashtable;
   142 class PackageHashtable;
   143 class PackageInfo;
   143 class PackageInfo;
   144 class HashtableBucket;
   144 template <MEMFLAGS F> class HashtableBucket;
   145 
   145 
   146 class ClassLoader: AllStatic {
   146 class ClassLoader: AllStatic {
   147  public:
   147  public:
   148   enum SomeConstants {
   148   enum SomeConstants {
   149     package_hash_table_size = 31  // Number of buckets
   149     package_hash_table_size = 31  // Number of buckets
   297   static objArrayOop get_system_packages(TRAPS);
   297   static objArrayOop get_system_packages(TRAPS);
   298 
   298 
   299   // Initialization
   299   // Initialization
   300   static void initialize();
   300   static void initialize();
   301   static void create_package_info_table();
   301   static void create_package_info_table();
   302   static void create_package_info_table(HashtableBucket *t, int length,
   302   static void create_package_info_table(HashtableBucket<mtClass> *t, int length,
   303                                         int number_of_entries);
   303                                         int number_of_entries);
   304   static int compute_Object_vtable();
   304   static int compute_Object_vtable();
   305 
   305 
   306   static ClassPathEntry* classpath_entry(int n) {
   306   static ClassPathEntry* classpath_entry(int n) {
   307     ClassPathEntry* e = ClassLoader::_first_entry;
   307     ClassPathEntry* e = ClassLoader::_first_entry;