--- a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c Sat Jul 09 17:45:16 2016 -0700
+++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c Sat Jul 09 21:41:14 2016 -0700
@@ -771,12 +771,11 @@
}
static jobject
-getModuleObject(JNIEnv * jnienv,
+getModuleObject(jvmtiEnv* jvmti,
jobject loaderObject,
const char* cname) {
- jboolean errorOutstanding = JNI_FALSE;
+ jvmtiError err = JVMTI_ERROR_NONE;
jobject moduleObject = NULL;
- jstring package = NULL;
/* find last slash in the class name */
char* last_slash = (cname == NULL) ? NULL : strrchr(cname, '/');
@@ -789,14 +788,9 @@
}
pkg_name_buf[len] = '\0';
- package = (*jnienv)->NewStringUTF(jnienv, pkg_name_buf);
- jplis_assert_msg(package != NULL, "OOM error in NewStringUTF");
+ err = (*jvmti)->GetNamedModule(jvmti, loaderObject, pkg_name_buf, &moduleObject);
+ jplis_assert_msg(err == JVMTI_ERROR_NONE, "error in the JVMTI GetNamedModule");
- moduleObject = JVM_GetModuleByPackageName(jnienv, loaderObject, package);
-
- errorOutstanding = checkForAndClearThrowable(jnienv);
- jplis_assert_msg(!errorOutstanding,
- "error in lookup of a module of the class being instrumented");
free((void*)pkg_name_buf);
return moduleObject;
}
@@ -862,7 +856,7 @@
jobject moduleObject = NULL;
if (classBeingRedefined == NULL) {
- moduleObject = getModuleObject(jnienv, loaderObject, name);
+ moduleObject = getModuleObject(jvmti(agent), loaderObject, name);
} else {
// Redefine or retransform, InstrumentationImpl.transform() will use
// classBeingRedefined.getModule() to get the module.
@@ -873,8 +867,8 @@
jnienv,
agent->mInstrumentationImpl,
agent->mTransform,
+ moduleObject,
loaderObject,
- moduleObject,
classNameStringObject,
classBeingRedefined,
protectionDomain,