< prev index next >

src/hotspot/share/classfile/classLoaderExt.cpp

Print this page

*** 28,38 **** #include "classfile/classLoader.inline.hpp" #include "classfile/classLoaderExt.hpp" #include "classfile/classLoaderData.inline.hpp" #include "classfile/klassFactory.hpp" #include "classfile/modules.hpp" - #include "classfile/sharedPathsMiscInfo.hpp" #include "classfile/systemDictionaryShared.hpp" #include "classfile/vmSymbols.hpp" #include "memory/allocation.inline.hpp" #include "memory/filemap.hpp" #include "memory/resourceArea.hpp" --- 28,37 ----
*** 72,82 **** // don't want to throw an error here because -cp "." is usually assigned // by the launcher when classpath is not specified. trace_class_path("app loader class path (skipped)=", app_class_path); } else { trace_class_path("app loader class path=", app_class_path); - shared_paths_misc_info()->add_app_classpath(app_class_path); ClassLoader::setup_app_search_path(app_class_path); } } void ClassLoaderExt::process_module_table(ModuleEntryTable* met, TRAPS) { --- 71,80 ----
*** 210,230 **** ResourceMark rm(THREAD); size_t libname_len = dir_len + name_len; char* libname = NEW_RESOURCE_ARRAY(char, libname_len + 1); int n = os::snprintf(libname, libname_len + 1, "%.*s%s", dir_len, dir_name, file_start); assert((size_t)n == libname_len, "Unexpected number of characters in string"); trace_class_path("library = ", libname); ! ClassLoader::update_class_path_entry_list(libname, true, false, true /* from_class_path_attr */); } file_start = file_end; } } } void ClassLoaderExt::setup_search_paths() { - shared_paths_misc_info()->record_app_offset(); ClassLoaderExt::setup_app_search_path(); } void ClassLoaderExt::record_result(const s2 classpath_index, InstanceKlass* result, --- 208,231 ---- ResourceMark rm(THREAD); size_t libname_len = dir_len + name_len; char* libname = NEW_RESOURCE_ARRAY(char, libname_len + 1); int n = os::snprintf(libname, libname_len + 1, "%.*s%s", dir_len, dir_name, file_start); assert((size_t)n == libname_len, "Unexpected number of characters in string"); + if (ClassLoader::update_class_path_entry_list(libname, true, false, true /* from_class_path_attr */)) { trace_class_path("library = ", libname); ! } else { ! trace_class_path("library (non-existent) = ", libname); ! FileMapInfo::record_non_existent_class_path_entry(libname); ! } } file_start = file_end; } } } void ClassLoaderExt::setup_search_paths() { ClassLoaderExt::setup_app_search_path(); } void ClassLoaderExt::record_result(const s2 classpath_index, InstanceKlass* result,
*** 246,261 **** } result->set_shared_classpath_index(classpath_index); result->set_class_loader_type(classloader_type); } - void ClassLoaderExt::finalize_shared_paths_misc_info() { - if (!_has_app_classes) { - shared_paths_misc_info()->pop_app(); - } - } - // Load the class of the given name from the location given by path. The path is specified by // the "source:" in the class list file (see classListParser.cpp), and can be a directory or // a JAR file. InstanceKlass* ClassLoaderExt::load_class(Symbol* name, const char* path, TRAPS) { assert(name != NULL, "invariant"); --- 247,256 ----
< prev index next >