80 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
81 #endif
82 {
83 jvmtiEventCallbacks eventCallbacks;
84 jvmtiEnv* jvmti = NULL;
85 JNIEnv* jni = NULL;
86
87 if (!NSK_VERIFY((options = (Options*) nsk_aod_createOptions(optionsString)) != NULL))
88 return JNI_ERR;
89
90 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
91
92 if ((jni = (JNIEnv*) nsk_aod_createJNIEnv(vm)) == NULL)
93 return NSK_FALSE;
94
95 if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL))
96 return JNI_ERR;
97
98 memset(&eventCallbacks,0, sizeof(eventCallbacks));
99 eventCallbacks.ClassPrepare = classPrepareHandler;
100 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) {
101 return JNI_ERR;
102 }
103
104 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_CLASS_PREPARE))) {
105 return JNI_ERR;
106 }
107
108 NSK_DISPLAY1("%s: initialization was done\n", agentName);
109
110 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
111 return JNI_ERR;
112
113 return JNI_OK;
114 }
115 }
|
80 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
81 #endif
82 {
83 jvmtiEventCallbacks eventCallbacks;
84 jvmtiEnv* jvmti = NULL;
85 JNIEnv* jni = NULL;
86
87 if (!NSK_VERIFY((options = (Options*) nsk_aod_createOptions(optionsString)) != NULL))
88 return JNI_ERR;
89
90 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
91
92 if ((jni = (JNIEnv*) nsk_aod_createJNIEnv(vm)) == NULL)
93 return NSK_FALSE;
94
95 if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL))
96 return JNI_ERR;
97
98 memset(&eventCallbacks,0, sizeof(eventCallbacks));
99 eventCallbacks.ClassPrepare = classPrepareHandler;
100 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
101 return JNI_ERR;
102 }
103
104 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_CLASS_PREPARE))) {
105 return JNI_ERR;
106 }
107
108 NSK_DISPLAY1("%s: initialization was done\n", agentName);
109
110 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
111 return JNI_ERR;
112
113 return JNI_OK;
114 }
115 }
|