--- old/src/share/back/classTrack.c 2020-06-03 21:25:51.625208744 +0100 +++ new/src/share/back/classTrack.c 2020-06-03 21:25:51.259204154 +0100 @@ -81,13 +81,14 @@ struct bag * classTrack_processUnloads(JNIEnv *env) { + struct bag* deleted; debugMonitorEnter(classTrackLock); if (deletedSignatures == NULL) { // Class tracking not initialized, nobody's interested. debugMonitorExit(classTrackLock); return NULL; } - struct bag* deleted = deletedSignatures; + deleted = deletedSignatures; deletedSignatures = bagCreateBag(sizeof(char*), 10); debugMonitorExit(classTrackLock); return deleted; @@ -101,6 +102,7 @@ { jvmtiError error; jvmtiEnv* env = trackingEnv; + char* signature; if (gdata && gdata->assertOn) { // Check this is not already tagged. @@ -112,7 +114,6 @@ JDI_ASSERT(tag == NOT_TAGGED); } - char* signature; error = classSignature(klass, &signature, NULL); if (error != JVMTI_ERROR_NONE) { EXIT_ERROR(error,"signature"); @@ -127,14 +128,15 @@ static jboolean setupEvents() { + jvmtiError error; + jvmtiEventCallbacks cb; jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); caps.can_generate_object_free_events = 1; - jvmtiError error = JVMTI_FUNC_PTR(trackingEnv, AddCapabilities)(trackingEnv, &caps); + error = JVMTI_FUNC_PTR(trackingEnv, AddCapabilities)(trackingEnv, &caps); if (error != JVMTI_ERROR_NONE) { return JNI_FALSE; } - jvmtiEventCallbacks cb; memset(&cb, 0, sizeof(cb)); cb.ObjectFree = cbTrackingObjectFree; error = JVMTI_FUNC_PTR(trackingEnv, SetEventCallbacks)(trackingEnv, &cb, sizeof(cb)); @@ -154,6 +156,11 @@ void classTrack_initialize(JNIEnv *env) { + jint classCount; + jclass *classes; + jvmtiError error; + jint i; + deletedSignatures = NULL; classTrackLock = debugMonitorCreate("Deleted class tag lock"); trackingEnv = getSpecialJvmti(); @@ -166,11 +173,6 @@ EXIT_ERROR(AGENT_ERROR_INTERNAL, "Unable to setup ObjectFree tracking"); } - jint classCount; - jclass *classes; - jvmtiError error; - jint i; - error = allLoadedClasses(&classes, &classCount); if ( error == JVMTI_ERROR_NONE ) { for (i = 0; i < classCount; i++) {