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/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;