--- a/hotspot/src/share/vm/prims/jvmtiEnv.cpp Thu Apr 06 17:01:01 2017 +0000
+++ b/hotspot/src/share/vm/prims/jvmtiEnv.cpp Fri Apr 07 08:04:46 2017 +0000
@@ -235,12 +235,12 @@
// check module
Handle h_module(THREAD, JNIHandles::resolve(module));
- if (!java_lang_reflect_Module::is_instance(h_module())) {
+ if (!java_lang_Module::is_instance(h_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
// check to_module
Handle h_to_module(THREAD, JNIHandles::resolve(to_module));
- if (!java_lang_reflect_Module::is_instance(h_to_module())) {
+ if (!java_lang_Module::is_instance(h_to_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
return JvmtiExport::add_module_reads(h_module, h_to_module, THREAD);
@@ -257,12 +257,12 @@
// check module
Handle h_module(THREAD, JNIHandles::resolve(module));
- if (!java_lang_reflect_Module::is_instance(h_module())) {
+ if (!java_lang_Module::is_instance(h_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
// check to_module
Handle h_to_module(THREAD, JNIHandles::resolve(to_module));
- if (!java_lang_reflect_Module::is_instance(h_to_module())) {
+ if (!java_lang_Module::is_instance(h_to_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
return JvmtiExport::add_module_exports(h_module, h_pkg, h_to_module, THREAD);
@@ -279,12 +279,12 @@
// check module
Handle h_module(THREAD, JNIHandles::resolve(module));
- if (!java_lang_reflect_Module::is_instance(h_module())) {
+ if (!java_lang_Module::is_instance(h_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
// check to_module
Handle h_to_module(THREAD, JNIHandles::resolve(to_module));
- if (!java_lang_reflect_Module::is_instance(h_to_module())) {
+ if (!java_lang_Module::is_instance(h_to_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
return JvmtiExport::add_module_opens(h_module, h_pkg, h_to_module, THREAD);
@@ -299,7 +299,7 @@
// check module
Handle h_module(THREAD, JNIHandles::resolve(module));
- if (!java_lang_reflect_Module::is_instance(h_module())) {
+ if (!java_lang_Module::is_instance(h_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
// check service
@@ -321,7 +321,7 @@
// check module
Handle h_module(THREAD, JNIHandles::resolve(module));
- if (!java_lang_reflect_Module::is_instance(h_module())) {
+ if (!java_lang_Module::is_instance(h_module())) {
return JVMTI_ERROR_INVALID_MODULE;
}
// check service
@@ -339,6 +339,22 @@
return JvmtiExport::add_module_provides(h_module, h_service, h_impl_class, THREAD);
} /* end AddModuleProvides */
+// module - pre-checked for NULL
+// is_modifiable_class_ptr - pre-checked for NULL
+jvmtiError
+JvmtiEnv::IsModifiableModule(jobject module, jboolean* is_modifiable_module_ptr) {
+ JavaThread* THREAD = JavaThread::current();
+
+ // check module
+ Handle h_module(THREAD, JNIHandles::resolve(module));
+ if (!java_lang_Module::is_instance(h_module())) {
+ return JVMTI_ERROR_INVALID_MODULE;
+ }
+
+ *is_modifiable_module_ptr = JNI_TRUE;
+ return JVMTI_ERROR_NONE;
+} /* end IsModifiableModule */
+
//
// Class functions