in src/roots/infos.cpp [23:39]
static jobjectArray buildMethodInfo(JNIEnv *env, jvmtiEnv *jvmti, jmethodID id) {
if (id == nullptr) {
return nullptr;
}
char *name, *signature, *genericSignature;
jvmtiError err = jvmti->GetMethodName(id, &name, &signature, &genericSignature);
handleError(jvmti, err, "Could not receive method info");
if (err != JVMTI_ERROR_NONE) return nullptr;
jobjectArray result = env->NewObjectArray(3, env->FindClass("java/lang/String"), nullptr);
env->SetObjectArrayElement(result, 0, env->NewStringUTF(name));
env->SetObjectArrayElement(result, 1, env->NewStringUTF(signature));
env->SetObjectArrayElement(result, 2, env->NewStringUTF(genericSignature));
jvmti->Deallocate(reinterpret_cast<unsigned char *>(name));
jvmti->Deallocate(reinterpret_cast<unsigned char *>(signature));
jvmti->Deallocate(reinterpret_cast<unsigned char *>(genericSignature));
return result;
}