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
|