diff options
| -rw-r--r-- | runtime/openjdkjvmti/OpenjdkJvmTi.cc | 22 | ||||
| -rw-r--r-- | test/903-hello-tagging/tagging.cc | 3 | ||||
| -rw-r--r-- | test/904-object-allocation/tracking.cc | 2 | ||||
| -rw-r--r-- | test/905-object-free/tracking_free.cc | 2 | ||||
| -rw-r--r-- | test/906-iterate-heap/iterate_heap.cc | 1 | ||||
| -rw-r--r-- | test/907-get-loaded-classes/get_loaded_classes.cc | 1 | ||||
| -rw-r--r-- | test/908-gc-start-finish/gc_callbacks.cc | 3 | ||||
| -rw-r--r-- | test/910-methods/methods.cc | 4 | ||||
| -rw-r--r-- | test/911-get-stack-trace/stack_trace.cc | 3 | ||||
| -rw-r--r-- | test/912-classes/classes.cc | 5 | ||||
| -rw-r--r-- | test/913-heaps/heaps.cc | 2 | ||||
| -rw-r--r-- | test/918-fields/fields.cc | 5 |
12 files changed, 49 insertions, 4 deletions
diff --git a/runtime/openjdkjvmti/OpenjdkJvmTi.cc b/runtime/openjdkjvmti/OpenjdkJvmTi.cc index 175dca2b41..faaeff361d 100644 --- a/runtime/openjdkjvmti/OpenjdkJvmTi.cc +++ b/runtime/openjdkjvmti/OpenjdkJvmTi.cc @@ -1067,8 +1067,15 @@ class JvmtiFunctions { ENSURE_NON_NULL(name_ptr); switch (error) { #define ERROR_CASE(e) case (JVMTI_ERROR_ ## e) : do { \ - *name_ptr = const_cast<char*>("JVMTI_ERROR_"#e); \ - return OK; \ + jvmtiError res = CopyString(env, \ + "JVMTI_ERROR_"#e, \ + reinterpret_cast<unsigned char**>(name_ptr)); \ + if (res != OK) { \ + *name_ptr = nullptr; \ + return res; \ + } else { \ + return OK; \ + } \ } while (false) ERROR_CASE(NONE); ERROR_CASE(INVALID_THREAD); @@ -1120,8 +1127,15 @@ class JvmtiFunctions { ERROR_CASE(INVALID_ENVIRONMENT); #undef ERROR_CASE default: { - *name_ptr = const_cast<char*>("JVMTI_ERROR_UNKNOWN"); - return ERR(ILLEGAL_ARGUMENT); + jvmtiError res = CopyString(env, + "JVMTI_ERROR_UNKNOWN", + reinterpret_cast<unsigned char**>(name_ptr)); + if (res != OK) { + *name_ptr = nullptr; + return res; + } else { + return ERR(ILLEGAL_ARGUMENT); + } } } } diff --git a/test/903-hello-tagging/tagging.cc b/test/903-hello-tagging/tagging.cc index 1557d45a6a..60a31bdd2d 100644 --- a/test/903-hello-tagging/tagging.cc +++ b/test/903-hello-tagging/tagging.cc @@ -44,6 +44,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_setTag(JNIEnv* env ATTRIBUTE_UNUSED, char* err; jvmti_env->GetErrorName(ret, &err); printf("Error setting tag: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } @@ -56,6 +57,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_Main_getTag(JNIEnv* env ATTRIBUTE_UNUSED char* err; jvmti_env->GetErrorName(ret, &err); printf("Error getting tag: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } return tag; } @@ -90,6 +92,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getTaggedObjects(JNIEnv* env char* err; jvmti_env->GetErrorName(ret, &err); printf("Failure running GetLoadedClasses: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } diff --git a/test/904-object-allocation/tracking.cc b/test/904-object-allocation/tracking.cc index 9261a9f9a1..f993606b42 100644 --- a/test/904-object-allocation/tracking.cc +++ b/test/904-object-allocation/tracking.cc @@ -69,6 +69,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_setupObjectAllocCallback( char* err; jvmti_env->GetErrorName(ret, &err); printf("Error setting callbacks: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } @@ -84,6 +85,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_enableAllocationTracking(JNIEnv* env char* err; jvmti_env->GetErrorName(ret, &err); printf("Error enabling/disabling allocation tracking: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } diff --git a/test/905-object-free/tracking_free.cc b/test/905-object-free/tracking_free.cc index fc43acce79..7f295accb2 100644 --- a/test/905-object-free/tracking_free.cc +++ b/test/905-object-free/tracking_free.cc @@ -50,6 +50,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_setupObjectFreeCallback( char* err; jvmti_env->GetErrorName(ret, &err); printf("Error setting callbacks: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } @@ -64,6 +65,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_enableFreeTracking(JNIEnv* env ATTRI char* err; jvmti_env->GetErrorName(ret, &err); printf("Error enabling/disabling object-free callbacks: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } diff --git a/test/906-iterate-heap/iterate_heap.cc b/test/906-iterate-heap/iterate_heap.cc index 8dac89d1a5..a2fd59128f 100644 --- a/test/906-iterate-heap/iterate_heap.cc +++ b/test/906-iterate-heap/iterate_heap.cc @@ -61,6 +61,7 @@ static bool Run(jint heap_filter, jclass klass_filter, IterationConfig* config) char* err; jvmti_env->GetErrorName(ret, &err); printf("Failure running IterateThroughHeap: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return false; } return true; diff --git a/test/907-get-loaded-classes/get_loaded_classes.cc b/test/907-get-loaded-classes/get_loaded_classes.cc index afbb77415e..36d33b63cc 100644 --- a/test/907-get-loaded-classes/get_loaded_classes.cc +++ b/test/907-get-loaded-classes/get_loaded_classes.cc @@ -48,6 +48,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getLoadedClasses( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetLoadedClasses: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } diff --git a/test/908-gc-start-finish/gc_callbacks.cc b/test/908-gc-start-finish/gc_callbacks.cc index 771d1adae6..1fab79dcb1 100644 --- a/test/908-gc-start-finish/gc_callbacks.cc +++ b/test/908-gc-start-finish/gc_callbacks.cc @@ -51,6 +51,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_setupGcCallback( char* err; jvmti_env->GetErrorName(ret, &err); printf("Error setting callbacks: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } @@ -65,6 +66,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_enableGcTracking(JNIEnv* env ATTRIBU char* err; jvmti_env->GetErrorName(ret, &err); printf("Error enabling/disabling gc callbacks: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } ret = jvmti_env->SetEventNotificationMode( enable ? JVMTI_ENABLE : JVMTI_DISABLE, @@ -74,6 +76,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_enableGcTracking(JNIEnv* env ATTRIBU char* err; jvmti_env->GetErrorName(ret, &err); printf("Error enabling/disabling gc callbacks: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } diff --git a/test/910-methods/methods.cc b/test/910-methods/methods.cc index 3ed91d7a17..b64952d62b 100644 --- a/test/910-methods/methods.cc +++ b/test/910-methods/methods.cc @@ -41,6 +41,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getMethodName( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetMethodName: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -72,6 +73,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getMethodName( char* err; jvmti_env->GetErrorName(result2, &err); printf("Failure running GetMethodName(null, null, null): %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -88,6 +90,7 @@ extern "C" JNIEXPORT jclass JNICALL Java_Main_getMethodDeclaringClass( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetMethodDeclaringClass: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -104,6 +107,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getMethodModifiers( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetMethodModifiers: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return 0; } diff --git a/test/911-get-stack-trace/stack_trace.cc b/test/911-get-stack-trace/stack_trace.cc index 57f6a927ea..b3e8bc3b1f 100644 --- a/test/911-get-stack-trace/stack_trace.cc +++ b/test/911-get-stack-trace/stack_trace.cc @@ -63,6 +63,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getStackTrace( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetStackTrace: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } } @@ -77,6 +78,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getStackTrace( char* err; jvmti_env->GetErrorName(result2, &err); printf("Failure running GetMethodName: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } } @@ -94,6 +96,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getStackTrace( char* err; jvmti_env->GetErrorName(line_result, &err); printf("Failure running GetLineNumberTable: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } line_number_table = nullptr; diff --git a/test/912-classes/classes.cc b/test/912-classes/classes.cc index bb3dee1ce0..19d82c544c 100644 --- a/test/912-classes/classes.cc +++ b/test/912-classes/classes.cc @@ -38,6 +38,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getClassSignature( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetClassSignature: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -69,6 +70,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_Main_isInterface( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running IsInterface: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return JNI_FALSE; } return is_interface; @@ -82,6 +84,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_Main_isArrayClass( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running IsArrayClass: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return JNI_FALSE; } return is_array_class; @@ -109,6 +112,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getClassFields( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetClassFields: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -186,6 +190,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getClassStatus( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetClassStatus: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return JNI_FALSE; } return status; diff --git a/test/913-heaps/heaps.cc b/test/913-heaps/heaps.cc index 49ab7dd83e..0b232af0df 100644 --- a/test/913-heaps/heaps.cc +++ b/test/913-heaps/heaps.cc @@ -49,6 +49,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_forceGarbageCollection(JNIEnv* env A char* err; jvmti_env->GetErrorName(ret, &err); printf("Error forcing a garbage collection: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); } } @@ -106,6 +107,7 @@ static bool Run(jint heap_filter, char* err; jvmti_env->GetErrorName(ret, &err); printf("Failure running FollowReferences: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return false; } return true; diff --git a/test/918-fields/fields.cc b/test/918-fields/fields.cc index c7fca06747..4d2b34b94e 100644 --- a/test/918-fields/fields.cc +++ b/test/918-fields/fields.cc @@ -42,6 +42,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getFieldName( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetFieldName: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -73,6 +74,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getFieldName( char* err; jvmti_env->GetErrorName(result2, &err); printf("Failure running GetFieldName(null, null, null): %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -89,6 +91,7 @@ extern "C" JNIEXPORT jclass JNICALL Java_Main_getFieldDeclaringClass( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetFieldDeclaringClass: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return nullptr; } @@ -105,6 +108,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getFieldModifiers( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running GetFieldModifiers: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return 0; } @@ -121,6 +125,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_Main_isFieldSynthetic( char* err; jvmti_env->GetErrorName(result, &err); printf("Failure running IsFieldSynthetic: %s\n", err); + jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err)); return 0; } |