summaryrefslogtreecommitdiffstats
path: root/test/044-proxy/native_proxy.cc
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-09-08 17:42:59 -0700
committerAndreas Gampe <agampe@google.com>2015-10-12 17:41:50 -0700
commitf015c2f4835a9985a8b31cfc810129b69865a6c4 (patch)
treec4adc26ed61fc2bb04cec2e5a5b99d79da4a0801 /test/044-proxy/native_proxy.cc
parent2602aa86d8e0e98f00311ea05395548b4d327f82 (diff)
downloadart-f015c2f4835a9985a8b31cfc810129b69865a6c4.zip
art-f015c2f4835a9985a8b31cfc810129b69865a6c4.tar.gz
art-f015c2f4835a9985a8b31cfc810129b69865a6c4.tar.bz2
ART: Add missing GetInterfaceMethodIfProxy
Add missing uses of GetInterfaceMethodIfProxy in reflection code. Add a test case for a JNI call to a proxy method. Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=2973 Bug: 23886441 (cherry picked from commit e80673245c0433a71a4930e460be5dc0920885b2) Change-Id: I5b66b64b5561fcee15d0314707d67e8abc02ce5b
Diffstat (limited to 'test/044-proxy/native_proxy.cc')
-rw-r--r--test/044-proxy/native_proxy.cc32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/044-proxy/native_proxy.cc b/test/044-proxy/native_proxy.cc
new file mode 100644
index 0000000..f168719
--- /dev/null
+++ b/test/044-proxy/native_proxy.cc
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "jni.h"
+
+#include "base/logging.h"
+
+namespace art {
+
+extern "C" JNIEXPORT void JNICALL Java_NativeProxy_nativeCall(
+ JNIEnv* env, jclass clazz ATTRIBUTE_UNUSED, jobject inf_ref) {
+ jclass native_inf_class = env->FindClass("NativeInterface");
+ CHECK(native_inf_class != nullptr);
+ jmethodID mid = env->GetMethodID(native_inf_class, "callback", "()V");
+ CHECK(mid != nullptr);
+ env->CallVoidMethod(inf_ref, mid);
+}
+
+} // namespace art