< prev index next >

src/hotspot/share/prims/whitebox.cpp

Print this page
rev 58870 : 8242452: During module definition, move conversion of packages from native to VM
8242290: Pointless verification in get_package_entry_by_name
Reviewed-by: lfoltan, alanb, iklam


1699   ClassLoaderData* cld = class_loader_oop != NULL
1700       ? java_lang_ClassLoader::loader_data_acquire(class_loader_oop)
1701       : ClassLoaderData::the_null_class_loader_data();
1702 
1703   void* metadata = MetadataFactory::new_array<u1>(cld, WhiteBox::array_bytes_to_length((size_t)size), thread);
1704 
1705   return (jlong)(uintptr_t)metadata;
1706 WB_END
1707 
1708 WB_ENTRY(void, WB_FreeMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong addr, jlong size))
1709   oop class_loader_oop = JNIHandles::resolve(class_loader);
1710   ClassLoaderData* cld = class_loader_oop != NULL
1711       ? java_lang_ClassLoader::loader_data_acquire(class_loader_oop)
1712       : ClassLoaderData::the_null_class_loader_data();
1713 
1714   MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr);
1715 WB_END
1716 
1717 WB_ENTRY(void, WB_DefineModule(JNIEnv* env, jobject o, jobject module, jboolean is_open,
1718                                 jstring version, jstring location, jobjectArray packages))
1719   ResourceMark rm(THREAD);
1720 
1721   objArrayOop packages_oop = objArrayOop(JNIHandles::resolve(packages));
1722   objArrayHandle packages_h(THREAD, packages_oop);
1723   int num_packages = (packages_h == NULL ? 0 : packages_h->length());
1724 
1725   char** pkgs = NULL;
1726   if (num_packages > 0) {
1727     pkgs = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char*, num_packages);
1728     for (int x = 0; x < num_packages; x++) {
1729       oop pkg_str = packages_h->obj_at(x);
1730       if (pkg_str == NULL || !pkg_str->is_a(SystemDictionary::String_klass())) {
1731         THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
1732                   err_msg("Bad package name"));
1733       }
1734       pkgs[x] = java_lang_String::as_utf8_string(pkg_str);
1735     }
1736   }
1737   Modules::define_module(module, is_open, version, location, (const char* const*)pkgs, num_packages, CHECK);
1738 WB_END
1739 
1740 WB_ENTRY(void, WB_AddModuleExports(JNIEnv* env, jobject o, jobject from_module, jstring package, jobject to_module))
1741   ResourceMark rm(THREAD);
1742   char* package_name = NULL;
1743   if (package != NULL) {
1744       package_name = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(package));
1745   }
1746   Modules::add_module_exports_qualified(from_module, package_name, to_module, CHECK);
1747 WB_END
1748 
1749 WB_ENTRY(void, WB_AddModuleExportsToAllUnnamed(JNIEnv* env, jobject o, jclass module, jstring package))
1750   ResourceMark rm(THREAD);
1751   char* package_name = NULL;
1752   if (package != NULL) {
1753       package_name = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(package));
1754   }
1755   Modules::add_module_exports_to_all_unnamed(module, package_name, CHECK);
1756 WB_END
1757 
1758 WB_ENTRY(void, WB_AddModuleExportsToAll(JNIEnv* env, jobject o, jclass module, jstring package))
1759   ResourceMark rm(THREAD);
1760   char* package_name = NULL;
1761   if (package != NULL) {
1762       package_name = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(package));
1763   }
1764   Modules::add_module_exports(module, package_name, NULL, CHECK);
1765 WB_END
1766 
1767 WB_ENTRY(void, WB_AddReadsModule(JNIEnv* env, jobject o, jobject from_module, jobject source_module))
1768   Modules::add_reads_module(from_module, source_module, CHECK);
1769 WB_END
1770 
1771 WB_ENTRY(jlong, WB_IncMetaspaceCapacityUntilGC(JNIEnv* env, jobject wb, jlong inc))
1772   if (inc < 0) {
1773     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
1774         err_msg("WB_IncMetaspaceCapacityUntilGC: inc is negative: " JLONG_FORMAT, inc));
1775   }
1776 
1777   jlong max_size_t = (jlong) ((size_t) -1);
1778   if (inc > max_size_t) {
1779     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
1780         err_msg("WB_IncMetaspaceCapacityUntilGC: inc does not fit in size_t: " JLONG_FORMAT, inc));
1781   }
1782 
1783   size_t new_cap_until_GC = 0;
1784   size_t aligned_inc = align_down((size_t) inc, Metaspace::commit_alignment());




1699   ClassLoaderData* cld = class_loader_oop != NULL
1700       ? java_lang_ClassLoader::loader_data_acquire(class_loader_oop)
1701       : ClassLoaderData::the_null_class_loader_data();
1702 
1703   void* metadata = MetadataFactory::new_array<u1>(cld, WhiteBox::array_bytes_to_length((size_t)size), thread);
1704 
1705   return (jlong)(uintptr_t)metadata;
1706 WB_END
1707 
1708 WB_ENTRY(void, WB_FreeMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong addr, jlong size))
1709   oop class_loader_oop = JNIHandles::resolve(class_loader);
1710   ClassLoaderData* cld = class_loader_oop != NULL
1711       ? java_lang_ClassLoader::loader_data_acquire(class_loader_oop)
1712       : ClassLoaderData::the_null_class_loader_data();
1713 
1714   MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr);
1715 WB_END
1716 
1717 WB_ENTRY(void, WB_DefineModule(JNIEnv* env, jobject o, jobject module, jboolean is_open,
1718                                 jstring version, jstring location, jobjectArray packages))
1719   Modules::define_module(module, is_open, version, location, packages, CHECK);


















1720 WB_END
1721 
1722 WB_ENTRY(void, WB_AddModuleExports(JNIEnv* env, jobject o, jobject from_module, jstring package, jobject to_module))
1723   Modules::add_module_exports_qualified(from_module, package, to_module, CHECK);





1724 WB_END
1725 
1726 WB_ENTRY(void, WB_AddModuleExportsToAllUnnamed(JNIEnv* env, jobject o, jclass module, jstring package))
1727   Modules::add_module_exports_to_all_unnamed(module, package, CHECK);





1728 WB_END
1729 
1730 WB_ENTRY(void, WB_AddModuleExportsToAll(JNIEnv* env, jobject o, jclass module, jstring package))
1731   Modules::add_module_exports(module, package, NULL, CHECK);





1732 WB_END
1733 
1734 WB_ENTRY(void, WB_AddReadsModule(JNIEnv* env, jobject o, jobject from_module, jobject source_module))
1735   Modules::add_reads_module(from_module, source_module, CHECK);
1736 WB_END
1737 
1738 WB_ENTRY(jlong, WB_IncMetaspaceCapacityUntilGC(JNIEnv* env, jobject wb, jlong inc))
1739   if (inc < 0) {
1740     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
1741         err_msg("WB_IncMetaspaceCapacityUntilGC: inc is negative: " JLONG_FORMAT, inc));
1742   }
1743 
1744   jlong max_size_t = (jlong) ((size_t) -1);
1745   if (inc > max_size_t) {
1746     THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
1747         err_msg("WB_IncMetaspaceCapacityUntilGC: inc does not fit in size_t: " JLONG_FORMAT, inc));
1748   }
1749 
1750   size_t new_cap_until_GC = 0;
1751   size_t aligned_inc = align_down((size_t) inc, Metaspace::commit_alignment());


< prev index next >