equal
deleted
inserted
replaced
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; |