251 if(!NSK_VERIFY(nsk_jvmti_resumeSync()))
252 return;
253 }
254
255 #ifdef STATIC_BUILD
256 JNIEXPORT jint JNICALL Agent_OnLoad_ConcreteKlassFilter(JavaVM *jvm, char *options, void *reserved) {
257 return Agent_Initialize(jvm, options, reserved);
258 }
259 JNIEXPORT jint JNICALL Agent_OnAttach_ConcreteKlassFilter(JavaVM *jvm, char *options, void *reserved) {
260 return Agent_Initialize(jvm, options, reserved);
261 }
262 JNIEXPORT jint JNI_OnLoad_ConcreteKlassFilter(JavaVM *jvm, char *options, void *reserved) {
263 return JNI_VERSION_1_8;
264 }
265 #endif
266 jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) {
267 jvmtiEnv *jvmti;
268 jvmtiCapabilities caps;
269 jvmtiEventCallbacks event_callbacks;
270
271 if(!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) {
272 return JNI_ERR;
273 }
274
275 nsk_jvmti_parseOptions(options);
276
277 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
278
279 memset(&caps, 0, sizeof(caps));
280 caps.can_tag_objects = 1;
281 caps.can_generate_object_free_events = 1;
282
283 if(!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) {
284 return JNI_ERR;
285 }
286
287 memset(&event_callbacks, 0, sizeof(jvmtiEventCallbacks));
288 event_callbacks.ObjectFree = &object_free_callback;
289 if(!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&event_callbacks, sizeof(jvmtiEventCallbacks)))) {
290 return JNI_ERR;
291 }
|
251 if(!NSK_VERIFY(nsk_jvmti_resumeSync()))
252 return;
253 }
254
255 #ifdef STATIC_BUILD
256 JNIEXPORT jint JNICALL Agent_OnLoad_ConcreteKlassFilter(JavaVM *jvm, char *options, void *reserved) {
257 return Agent_Initialize(jvm, options, reserved);
258 }
259 JNIEXPORT jint JNICALL Agent_OnAttach_ConcreteKlassFilter(JavaVM *jvm, char *options, void *reserved) {
260 return Agent_Initialize(jvm, options, reserved);
261 }
262 JNIEXPORT jint JNI_OnLoad_ConcreteKlassFilter(JavaVM *jvm, char *options, void *reserved) {
263 return JNI_VERSION_1_8;
264 }
265 #endif
266 jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) {
267 jvmtiEnv *jvmti;
268 jvmtiCapabilities caps;
269 jvmtiEventCallbacks event_callbacks;
270
271 jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved);
272 if(!NSK_VERIFY(jvmti != NULL)) {
273 return JNI_ERR;
274 }
275
276 nsk_jvmti_parseOptions(options);
277
278 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
279
280 memset(&caps, 0, sizeof(caps));
281 caps.can_tag_objects = 1;
282 caps.can_generate_object_free_events = 1;
283
284 if(!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) {
285 return JNI_ERR;
286 }
287
288 memset(&event_callbacks, 0, sizeof(jvmtiEventCallbacks));
289 event_callbacks.ObjectFree = &object_free_callback;
290 if(!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&event_callbacks, sizeof(jvmtiEventCallbacks)))) {
291 return JNI_ERR;
292 }
|