comparison src/share/vm/classfile/classLoader.hpp @ 6197:d2a62e0f25eb

6995781: Native Memory Tracking (Phase 1) 7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain
author zgu
date Thu, 28 Jun 2012 17:03:16 -0400
parents 1d1603768966
children 957c266d8bc5 b9a9ed0f8eeb
comparison
equal deleted inserted replaced
6174:74533f63b116 6197:d2a62e0f25eb
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;