src/hotspot/share/classfile/classLoader.cpp
changeset 54847 59ea39bb2809
parent 54786 ebf733a324d4
child 54927 1512d88b24c6
equal deleted inserted replaced
54846:e4049522b074 54847:59ea39bb2809
   242   const char *pkg_name = ClassLoader::package_from_name(class_name);
   242   const char *pkg_name = ClassLoader::package_from_name(class_name);
   243   if (pkg_name == NULL) {
   243   if (pkg_name == NULL) {
   244     return NULL;
   244     return NULL;
   245   }
   245   }
   246   PackageEntryTable* pkgEntryTable = loader_data->packages();
   246   PackageEntryTable* pkgEntryTable = loader_data->packages();
   247   TempNewSymbol pkg_symbol = SymbolTable::new_symbol(pkg_name, CHECK_NULL);
   247   TempNewSymbol pkg_symbol = SymbolTable::new_symbol(pkg_name);
   248   return pkgEntryTable->lookup_only(pkg_symbol);
   248   return pkgEntryTable->lookup_only(pkg_symbol);
   249 }
   249 }
   250 
   250 
   251 ClassPathDirEntry::ClassPathDirEntry(const char* dir) : ClassPathEntry() {
   251 ClassPathDirEntry::ClassPathDirEntry(const char* dir) : ClassPathEntry() {
   252   char* copy = NEW_C_HEAP_ARRAY(char, strlen(dir)+1, mtClass);
   252   char* copy = NEW_C_HEAP_ARRAY(char, strlen(dir)+1, mtClass);
   644   // Set up the boot loader's _patch_mod_entries list
   644   // Set up the boot loader's _patch_mod_entries list
   645   _patch_mod_entries = new (ResourceObj::C_HEAP, mtModule) GrowableArray<ModuleClassPathList*>(num_of_entries, true);
   645   _patch_mod_entries = new (ResourceObj::C_HEAP, mtModule) GrowableArray<ModuleClassPathList*>(num_of_entries, true);
   646 
   646 
   647   for (int i = 0; i < num_of_entries; i++) {
   647   for (int i = 0; i < num_of_entries; i++) {
   648     const char* module_name = (patch_mod_args->at(i))->module_name();
   648     const char* module_name = (patch_mod_args->at(i))->module_name();
   649     Symbol* const module_sym = SymbolTable::lookup(module_name, (int)strlen(module_name), CHECK);
   649     Symbol* const module_sym = SymbolTable::new_symbol(module_name);
   650     assert(module_sym != NULL, "Failed to obtain Symbol for module name");
   650     assert(module_sym != NULL, "Failed to obtain Symbol for module name");
   651     ModuleClassPathList* module_cpl = new ModuleClassPathList(module_sym);
   651     ModuleClassPathList* module_cpl = new ModuleClassPathList(module_sym);
   652 
   652 
   653     char* class_path = (patch_mod_args->at(i))->path_string();
   653     char* class_path = (patch_mod_args->at(i))->path_string();
   654     int len = (int)strlen(class_path);
   654     int len = (int)strlen(class_path);
  1124   // Get package name from fully qualified class name.
  1124   // Get package name from fully qualified class name.
  1125   ResourceMark rm;
  1125   ResourceMark rm;
  1126   const char *cp = package_from_name(fullq_class_name);
  1126   const char *cp = package_from_name(fullq_class_name);
  1127   if (cp != NULL) {
  1127   if (cp != NULL) {
  1128     PackageEntryTable* pkg_entry_tbl = ClassLoaderData::the_null_class_loader_data()->packages();
  1128     PackageEntryTable* pkg_entry_tbl = ClassLoaderData::the_null_class_loader_data()->packages();
  1129     TempNewSymbol pkg_symbol = SymbolTable::new_symbol(cp, CHECK_false);
  1129     TempNewSymbol pkg_symbol = SymbolTable::new_symbol(cp);
  1130     PackageEntry* pkg_entry = pkg_entry_tbl->lookup_only(pkg_symbol);
  1130     PackageEntry* pkg_entry = pkg_entry_tbl->lookup_only(pkg_symbol);
  1131     if (pkg_entry != NULL) {
  1131     if (pkg_entry != NULL) {
  1132       assert(classpath_index != -1, "Unexpected classpath_index");
  1132       assert(classpath_index != -1, "Unexpected classpath_index");
  1133       pkg_entry->set_classpath_index(classpath_index);
  1133       pkg_entry->set_classpath_index(classpath_index);
  1134     } else {
  1134     } else {
  1139 }
  1139 }
  1140 
  1140 
  1141 oop ClassLoader::get_system_package(const char* name, TRAPS) {
  1141 oop ClassLoader::get_system_package(const char* name, TRAPS) {
  1142   // Look up the name in the boot loader's package entry table.
  1142   // Look up the name in the boot loader's package entry table.
  1143   if (name != NULL) {
  1143   if (name != NULL) {
  1144     TempNewSymbol package_sym = SymbolTable::new_symbol(name, (int)strlen(name), CHECK_NULL);
  1144     TempNewSymbol package_sym = SymbolTable::new_symbol(name);
  1145     // Look for the package entry in the boot loader's package entry table.
  1145     // Look for the package entry in the boot loader's package entry table.
  1146     PackageEntry* package =
  1146     PackageEntry* package =
  1147       ClassLoaderData::the_null_class_loader_data()->packages()->lookup_only(package_sym);
  1147       ClassLoaderData::the_null_class_loader_data()->packages()->lookup_only(package_sym);
  1148 
  1148 
  1149     // Return NULL if package does not exist or if no classes in that package
  1149     // Return NULL if package does not exist or if no classes in that package