src/hotspot/share/classfile/classLoader.cpp
changeset 58842 6c255334120d
parent 58722 cba8afa5cfed
child 58879 717ebfbac29d
equal deleted inserted replaced
58836:31ec3e55fa3d 58842:6c255334120d
  1527                         "unsafeDefineClassCalls");
  1527                         "unsafeDefineClassCalls");
  1528   }
  1528   }
  1529 
  1529 
  1530   // lookup zip library entry points
  1530   // lookup zip library entry points
  1531   load_zip_library();
  1531   load_zip_library();
  1532   // lookup jimage library entry points
  1532   // jimage library entry points are loaded below, in lookup_vm_options
       
  1533   setup_bootstrap_search_path();
       
  1534 }
       
  1535 
       
  1536 char* lookup_vm_resource(JImageFile *jimage, const char *jimage_version, const char *path) {
       
  1537   jlong size;
       
  1538   JImageLocationRef location = (*JImageFindResource)(jimage, "java.base", jimage_version, path, &size);
       
  1539   if (location == 0)
       
  1540     return NULL;
       
  1541   char *val = NEW_C_HEAP_ARRAY(char, size+1, mtClass);
       
  1542   (*JImageGetResource)(jimage, location, val, size);
       
  1543   val[size] = '\0';
       
  1544   return val;
       
  1545 }
       
  1546 
       
  1547 // Lookup VM options embedded in the modules jimage file
       
  1548 char* ClassLoader::lookup_vm_options() {
       
  1549   jint error;
       
  1550   char modules_path[JVM_MAXPATHLEN];
       
  1551   const char* fileSep = os::file_separator();
       
  1552 
       
  1553   // Initialize jimage library entry points
  1533   load_jimage_library();
  1554   load_jimage_library();
  1534   setup_bootstrap_search_path();
  1555 
       
  1556   jio_snprintf(modules_path, JVM_MAXPATHLEN, "%s%slib%smodules", Arguments::get_java_home(), fileSep, fileSep);
       
  1557   JImageFile* jimage =(*JImageOpen)(modules_path, &error);
       
  1558   if (jimage == NULL) {
       
  1559     return NULL;
       
  1560   }
       
  1561 
       
  1562   const char *jimage_version = get_jimage_version_string();
       
  1563   char *options = lookup_vm_resource(jimage, jimage_version, "jdk/internal/vm/options");
       
  1564 
       
  1565   (*JImageClose)(jimage);
       
  1566   return options;
  1535 }
  1567 }
  1536 
  1568 
  1537 #if INCLUDE_CDS
  1569 #if INCLUDE_CDS
  1538 void ClassLoader::initialize_shared_path() {
  1570 void ClassLoader::initialize_shared_path() {
  1539   if (Arguments::is_dumping_archive()) {
  1571   if (Arguments::is_dumping_archive()) {