diff options
Diffstat (limited to 'test/910-methods/methods.cc')
| -rw-r--r-- | test/910-methods/methods.cc | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/test/910-methods/methods.cc b/test/910-methods/methods.cc index b64952d62b..fa9679db4b 100644 --- a/test/910-methods/methods.cc +++ b/test/910-methods/methods.cc @@ -114,6 +114,99 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getMethodModifiers( return modifiers; } +extern "C" JNIEXPORT jint JNICALL Java_Main_getMaxLocals( + JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) { + jmethodID id = env->FromReflectedMethod(method); + + jint max_locals; + jvmtiError result = jvmti_env->GetMaxLocals(id, &max_locals); + if (JvmtiErrorToException(env, result)) { + return -1; + } + + return max_locals; +} + +extern "C" JNIEXPORT jint JNICALL Java_Main_getArgumentsSize( + JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) { + jmethodID id = env->FromReflectedMethod(method); + + jint arguments; + jvmtiError result = jvmti_env->GetArgumentsSize(id, &arguments); + if (JvmtiErrorToException(env, result)) { + return -1; + } + + return arguments; +} + +extern "C" JNIEXPORT jlong JNICALL Java_Main_getMethodLocationStart( + JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) { + jmethodID id = env->FromReflectedMethod(method); + + jlong start; + jlong end; + jvmtiError result = jvmti_env->GetMethodLocation(id, &start, &end); + if (JvmtiErrorToException(env, result)) { + return -1; + } + + return start; +} + +extern "C" JNIEXPORT jlong JNICALL Java_Main_getMethodLocationEnd( + JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) { + jmethodID id = env->FromReflectedMethod(method); + + jlong start; + jlong end; + jvmtiError result = jvmti_env->GetMethodLocation(id, &start, &end); + if (JvmtiErrorToException(env, result)) { + return -1; + } + + return end; +} + +extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodNative( + JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) { + jmethodID id = env->FromReflectedMethod(method); + + jboolean is_native; + jvmtiError result = jvmti_env->IsMethodNative(id, &is_native); + if (JvmtiErrorToException(env, result)) { + return JNI_FALSE; + } + + return is_native; +} + +extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodObsolete( + JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) { + jmethodID id = env->FromReflectedMethod(method); + + jboolean is_obsolete; + jvmtiError result = jvmti_env->IsMethodObsolete(id, &is_obsolete); + if (JvmtiErrorToException(env, result)) { + return JNI_FALSE; + } + + return is_obsolete; +} + +extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodSynthetic( + JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) { + jmethodID id = env->FromReflectedMethod(method); + + jboolean is_synthetic; + jvmtiError result = jvmti_env->IsMethodSynthetic(id, &is_synthetic); + if (JvmtiErrorToException(env, result)) { + return JNI_FALSE; + } + + return is_synthetic; +} + // Don't do anything jint OnLoad(JavaVM* vm, char* options ATTRIBUTE_UNUSED, |