Make GetErrorName allocate the output buffer.
Previously we were simply returning a static pointer which isn't
allowed by the spec.
Test: mma -j40 test-art-host
Change-Id: I84cfb81e58d479c7c0d5ee352f5b005183895c82
diff --git a/test/903-hello-tagging/tagging.cc b/test/903-hello-tagging/tagging.cc
index 1557d45..60a31bd 100644
--- a/test/903-hello-tagging/tagging.cc
+++ b/test/903-hello-tagging/tagging.cc
@@ -44,6 +44,7 @@
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 @@
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 @@
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 9261a9f..f993606 100644
--- a/test/904-object-allocation/tracking.cc
+++ b/test/904-object-allocation/tracking.cc
@@ -69,6 +69,7 @@
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 @@
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 fc43acc..7f295ac 100644
--- a/test/905-object-free/tracking_free.cc
+++ b/test/905-object-free/tracking_free.cc
@@ -50,6 +50,7 @@
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 @@
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 8dac89d..a2fd591 100644
--- a/test/906-iterate-heap/iterate_heap.cc
+++ b/test/906-iterate-heap/iterate_heap.cc
@@ -61,6 +61,7 @@
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 afbb774..36d33b6 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 @@
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 771d1ad..1fab79d 100644
--- a/test/908-gc-start-finish/gc_callbacks.cc
+++ b/test/908-gc-start-finish/gc_callbacks.cc
@@ -51,6 +51,7 @@
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 @@
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 @@
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 3ed91d7..b64952d 100644
--- a/test/910-methods/methods.cc
+++ b/test/910-methods/methods.cc
@@ -41,6 +41,7 @@
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 @@
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 @@
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 @@
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 57f6a92..b3e8bc3 100644
--- a/test/911-get-stack-trace/stack_trace.cc
+++ b/test/911-get-stack-trace/stack_trace.cc
@@ -63,6 +63,7 @@
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 @@
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 @@
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 28c5931..57d0d69 100644
--- a/test/912-classes/classes.cc
+++ b/test/912-classes/classes.cc
@@ -38,6 +38,7 @@
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 @@
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 @@
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;
@@ -96,6 +99,7 @@
char* err;
jvmti_env->GetErrorName(result, &err);
printf("Failure running GetClassFields: %s\n", err);
+ jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err));
return nullptr;
}
@@ -119,6 +123,7 @@
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 49ab7dd..0b232af 100644
--- a/test/913-heaps/heaps.cc
+++ b/test/913-heaps/heaps.cc
@@ -49,6 +49,7 @@
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 @@
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 c7fca06..4d2b34b 100644
--- a/test/918-fields/fields.cc
+++ b/test/918-fields/fields.cc
@@ -42,6 +42,7 @@
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 @@
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 @@
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 @@
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 @@
char* err;
jvmti_env->GetErrorName(result, &err);
printf("Failure running IsFieldSynthetic: %s\n", err);
+ jvmti_env->Deallocate(reinterpret_cast<unsigned char*>(err));
return 0;
}