summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/openjdkjvmti/OpenjdkJvmTi.cc22
-rw-r--r--test/903-hello-tagging/tagging.cc3
-rw-r--r--test/904-object-allocation/tracking.cc2
-rw-r--r--test/905-object-free/tracking_free.cc2
-rw-r--r--test/906-iterate-heap/iterate_heap.cc1
-rw-r--r--test/907-get-loaded-classes/get_loaded_classes.cc1
-rw-r--r--test/908-gc-start-finish/gc_callbacks.cc3
-rw-r--r--test/910-methods/methods.cc4
-rw-r--r--test/911-get-stack-trace/stack_trace.cc3
-rw-r--r--test/912-classes/classes.cc5
-rw-r--r--test/913-heaps/heaps.cc2
-rw-r--r--test/918-fields/fields.cc5
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;
}