< prev index next >

src/share/vm/classfile/classLoader.cpp

Print this page




1703     out[len - 1] = '\0';
1704   }
1705   return true;
1706 }
1707 
1708 void ClassLoader::create_javabase() {
1709   Thread* THREAD = Thread::current();
1710 
1711   // Create java.base's module entry for the boot
1712   // class loader prior to loading j.l.Ojbect.
1713   ClassLoaderData* null_cld = ClassLoaderData::the_null_class_loader_data();
1714 
1715   // Get module entry table
1716   ModuleEntryTable* null_cld_modules = null_cld->modules();
1717   if (null_cld_modules == NULL) {
1718     vm_exit_during_initialization("No ModuleEntryTable for the boot class loader");
1719   }
1720 
1721   {
1722     MutexLocker ml(Module_lock, THREAD);
1723     ModuleEntry* jb_module = null_cld_modules->locked_create_entry_or_null(Handle(NULL), vmSymbols::java_base(), NULL, NULL, null_cld);

1724     if (jb_module == NULL) {
1725       vm_exit_during_initialization("Unable to create ModuleEntry for " JAVA_BASE_NAME);
1726     }
1727     ModuleEntryTable::set_javabase_moduleEntry(jb_module);
1728   }
1729 }
1730 
1731 #ifndef PRODUCT
1732 
1733 // CompileTheWorld
1734 //
1735 // Iterates over all class path entries and forces compilation of all methods
1736 // in all classes found. Currently, only zip/jar archives are searched.
1737 //
1738 // The classes are loaded by the Java level bootstrap class loader, and the
1739 // initializer is called. If DelayCompilationDuringStartup is true (default),
1740 // the interpreter will run the initialization code. Note that forcing
1741 // initialization in this way could potentially lead to initialization order
1742 // problems, in which case we could just force the initialization bit to be set.
1743 




1703     out[len - 1] = '\0';
1704   }
1705   return true;
1706 }
1707 
1708 void ClassLoader::create_javabase() {
1709   Thread* THREAD = Thread::current();
1710 
1711   // Create java.base's module entry for the boot
1712   // class loader prior to loading j.l.Ojbect.
1713   ClassLoaderData* null_cld = ClassLoaderData::the_null_class_loader_data();
1714 
1715   // Get module entry table
1716   ModuleEntryTable* null_cld_modules = null_cld->modules();
1717   if (null_cld_modules == NULL) {
1718     vm_exit_during_initialization("No ModuleEntryTable for the boot class loader");
1719   }
1720 
1721   {
1722     MutexLocker ml(Module_lock, THREAD);
1723     ModuleEntry* jb_module = null_cld_modules->locked_create_entry_or_null(Handle(NULL),
1724                                false, vmSymbols::java_base(), NULL, NULL, null_cld);
1725     if (jb_module == NULL) {
1726       vm_exit_during_initialization("Unable to create ModuleEntry for " JAVA_BASE_NAME);
1727     }
1728     ModuleEntryTable::set_javabase_moduleEntry(jb_module);
1729   }
1730 }
1731 
1732 #ifndef PRODUCT
1733 
1734 // CompileTheWorld
1735 //
1736 // Iterates over all class path entries and forces compilation of all methods
1737 // in all classes found. Currently, only zip/jar archives are searched.
1738 //
1739 // The classes are loaded by the Java level bootstrap class loader, and the
1740 // initializer is called. If DelayCompilationDuringStartup is true (default),
1741 // the interpreter will run the initialization code. Note that forcing
1742 // initialization in this way could potentially lead to initialization order
1743 // problems, in which case we could just force the initialization bit to be set.
1744 


< prev index next >