568 if(!NSK_VERIFY(nsk_jvmti_resumeSync()))
569 return;
570 }
571
572 #ifdef STATIC_BUILD
573 JNIEXPORT jint JNICALL Agent_OnLoad_Callbacks(JavaVM *jvm, char *options, void *reserved) {
574 return Agent_Initialize(jvm, options, reserved);
575 }
576 JNIEXPORT jint JNICALL Agent_OnAttach_Callbacks(JavaVM *jvm, char *options, void *reserved) {
577 return Agent_Initialize(jvm, options, reserved);
578 }
579 JNIEXPORT jint JNI_OnLoad_Callbacks(JavaVM *jvm, char *options, void *reserved) {
580 return JNI_VERSION_1_8;
581 }
582 #endif
583 jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) {
584 jvmtiEnv *jvmti;
585 jvmtiCapabilities caps;
586 jvmtiEventCallbacks event_callbacks;
587
588 if(!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) {
589 return JNI_ERR;
590 }
591
592 nsk_jvmti_parseOptions(options);
593
594 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
595
596 memset(&caps, 0, sizeof(caps));
597 caps.can_tag_objects = 1;
598 caps.can_generate_object_free_events = 1;
599
600 if(!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) {
601 return JNI_ERR;
602 }
603
604 memset(&event_callbacks, 0, sizeof(jvmtiEventCallbacks));
605 event_callbacks.ObjectFree = &object_free_callback;
606 if(!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&event_callbacks, sizeof(jvmtiEventCallbacks)))) {
607 return JNI_ERR;
608 }
|
568 if(!NSK_VERIFY(nsk_jvmti_resumeSync()))
569 return;
570 }
571
572 #ifdef STATIC_BUILD
573 JNIEXPORT jint JNICALL Agent_OnLoad_Callbacks(JavaVM *jvm, char *options, void *reserved) {
574 return Agent_Initialize(jvm, options, reserved);
575 }
576 JNIEXPORT jint JNICALL Agent_OnAttach_Callbacks(JavaVM *jvm, char *options, void *reserved) {
577 return Agent_Initialize(jvm, options, reserved);
578 }
579 JNIEXPORT jint JNI_OnLoad_Callbacks(JavaVM *jvm, char *options, void *reserved) {
580 return JNI_VERSION_1_8;
581 }
582 #endif
583 jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) {
584 jvmtiEnv *jvmti;
585 jvmtiCapabilities caps;
586 jvmtiEventCallbacks event_callbacks;
587
588 jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved);
589 if(!NSK_VERIFY(jvmti != NULL)) {
590 return JNI_ERR;
591 }
592
593 nsk_jvmti_parseOptions(options);
594
595 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
596
597 memset(&caps, 0, sizeof(caps));
598 caps.can_tag_objects = 1;
599 caps.can_generate_object_free_events = 1;
600
601 if(!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) {
602 return JNI_ERR;
603 }
604
605 memset(&event_callbacks, 0, sizeof(jvmtiEventCallbacks));
606 event_callbacks.ObjectFree = &object_free_callback;
607 if(!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&event_callbacks, sizeof(jvmtiEventCallbacks)))) {
608 return JNI_ERR;
609 }
|