summaryrefslogtreecommitdiff
path: root/src/java_lang_Class.cc
diff options
context:
space:
mode:
author Elliott Hughes <enh@google.com> 2012-03-21 17:24:41 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-03-21 17:24:41 -0700
commite5b7894351ecc5ef99442eea0700c913178c95ce (patch)
treefae77857fb12134d6bd10db338eafc07d4b38ccf /src/java_lang_Class.cc
parentdc1b9ff8bca6b4190526dc556f14a4821aceab9b (diff)
parent2ed52c4419dd537c98cd7898bc8bdcf8826b8940 (diff)
Merge "Stash the directly-implemented interfaces in Proxy so we can implement Class.getInterfaces." into ics-mr1-plus-art
Diffstat (limited to 'src/java_lang_Class.cc')
-rw-r--r--src/java_lang_Class.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/java_lang_Class.cc b/src/java_lang_Class.cc
index 3dce55994f..567a067088 100644
--- a/src/java_lang_Class.cc
+++ b/src/java_lang_Class.cc
@@ -288,6 +288,12 @@ static jstring Class_getNameNative(JNIEnv* env, jobject javaThis) {
return AddLocalReference<jstring>(env, c->ComputeName());
}
+static jobjectArray Class_getProxyInterfaces(JNIEnv* env, jobject javaThis) {
+ ScopedThreadStateChange tsc(Thread::Current(), Thread::kRunnable);
+ SynthesizedProxyClass* c = down_cast<SynthesizedProxyClass*>(Decode<Class*>(env, javaThis));
+ return AddLocalReference<jobjectArray>(env, c->GetInterfaces()->Clone());
+}
+
static jboolean Class_isAssignableFrom(JNIEnv* env, jobject javaLhs, jclass javaRhs) {
ScopedThreadStateChange tsc(Thread::Current(), Thread::kRunnable);
Class* lhs = Decode<Class*>(env, javaLhs);
@@ -410,6 +416,7 @@ static JNINativeMethod gMethods[] = {
NATIVE_METHOD(Class, getDeclaredMethods, "(Z)[Ljava/lang/reflect/Method;"),
NATIVE_METHOD(Class, getDex, "()Lcom/android/dex/Dex;"),
NATIVE_METHOD(Class, getNameNative, "()Ljava/lang/String;"),
+ NATIVE_METHOD(Class, getProxyInterfaces, "()[Ljava/lang/Class;"),
NATIVE_METHOD(Class, isAssignableFrom, "(Ljava/lang/Class;)Z"),
NATIVE_METHOD(Class, isInstance, "(Ljava/lang/Object;)Z"),
NATIVE_METHOD(Class, newInstanceImpl, "()Ljava/lang/Object;"),