comparison src/share/vm/classfile/classLoader.hpp @ 20608:4cb90023bf2b

8061651: Interface to the Lookup Index Cache to improve URLClassPath search time Summary: Implemented the interface in sun.misc.URLClassPath and corresponding JVM_XXX APIs Reviewed-by: mchung, acorn, jiangli, dholmes
author iklam
date Mon, 13 Oct 2014 16:09:57 -0700
parents 8cb56c8cb30d
children 7848fc12602b f46ffa934a46
comparison
equal deleted inserted replaced
20607:f5f752e74840 20608:4cb90023bf2b
127 struct stat _st; 127 struct stat _st;
128 MetaIndex* _meta_index; 128 MetaIndex* _meta_index;
129 bool _has_error; 129 bool _has_error;
130 bool _throw_exception; 130 bool _throw_exception;
131 volatile ClassPathEntry* _resolved_entry; 131 volatile ClassPathEntry* _resolved_entry;
132 public:
132 ClassPathEntry* resolve_entry(TRAPS); 133 ClassPathEntry* resolve_entry(TRAPS);
133 public:
134 bool is_jar_file(); 134 bool is_jar_file();
135 const char* name() { return _path; } 135 const char* name() { return _path; }
136 LazyClassPathEntry(const char* path, const struct stat* st, bool throw_exception); 136 LazyClassPathEntry(const char* path, const struct stat* st, bool throw_exception);
137 u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS); 137 u1* open_entry(const char* name, jint* filesize, bool nul_terminate, TRAPS);
138 ClassFileStream* open_stream(const char* name, TRAPS); 138 ClassFileStream* open_stream(const char* name, TRAPS);
216 // Initialization 216 // Initialization
217 static void setup_bootstrap_meta_index(); 217 static void setup_bootstrap_meta_index();
218 static void setup_meta_index(const char* meta_index_path, const char* meta_index_dir, 218 static void setup_meta_index(const char* meta_index_path, const char* meta_index_dir,
219 int start_index); 219 int start_index);
220 static void setup_bootstrap_search_path(); 220 static void setup_bootstrap_search_path();
221 static void setup_search_path(const char *class_path); 221 static void setup_search_path(const char *class_path, bool canonicalize=false);
222 222
223 static void load_zip_library(); 223 static void load_zip_library();
224 static ClassPathEntry* create_class_path_entry(const char *path, const struct stat* st, 224 static ClassPathEntry* create_class_path_entry(const char *path, const struct stat* st,
225 bool lazy, bool throw_exception, TRAPS); 225 bool lazy, bool throw_exception, TRAPS);
226 226
325 while (--n >= 0) { 325 while (--n >= 0) {
326 assert(e != NULL, "Not that many classpath entries."); 326 assert(e != NULL, "Not that many classpath entries.");
327 e = e->next(); 327 e = e->next();
328 } 328 }
329 return e; 329 return e;
330 }
331
332 static int num_classpath_entries() {
333 return _num_entries;
330 } 334 }
331 335
332 #if INCLUDE_CDS 336 #if INCLUDE_CDS
333 // Sharing dump and restore 337 // Sharing dump and restore
334 static void copy_package_info_buckets(char** top, char* end); 338 static void copy_package_info_buckets(char** top, char* end);