summaryrefslogtreecommitdiffstats
path: root/base/android
diff options
context:
space:
mode:
authorycheo@chromium.org <ycheo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-18 18:53:12 +0000
committerycheo@chromium.org <ycheo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-18 18:53:12 +0000
commitdb5f70f1dda5cbb1bdd494b6bc2ea98d9fb3e651 (patch)
tree7b22d4538eb573566f9e9a5f59477f5994d3692f /base/android
parentd7a24e2559c053056d557c90eb86a000c1e64a0d (diff)
downloadchromium_src-db5f70f1dda5cbb1bdd494b6bc2ea98d9fb3e651.zip
chromium_src-db5f70f1dda5cbb1bdd494b6bc2ea98d9fb3e651.tar.gz
chromium_src-db5f70f1dda5cbb1bdd494b6bc2ea98d9fb3e651.tar.bz2
Make jni_generator support the returing of the inner class.
TEST=jni_generator_tests BUG= Review URL: https://chromiumcodereview.appspot.com/12604014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188784 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/android')
-rwxr-xr-xbase/android/jni_generator/jni_generator.py2
-rwxr-xr-xbase/android/jni_generator/jni_generator_tests.py37
2 files changed, 38 insertions, 1 deletions
diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py
index 1ae5090..6da9849 100755
--- a/base/android/jni_generator/jni_generator.py
+++ b/base/android/jni_generator/jni_generator.py
@@ -381,7 +381,7 @@ RE_SCOPED_JNI_RETURN_TYPES = re.compile('jobject|jclass|jstring|.*Array')
RE_CALLED_BY_NATIVE = re.compile(
'@CalledByNative(?P<Unchecked>(Unchecked)*?)(?:\("(?P<annotation>.*)"\))?'
'\s+(?P<prefix>[\w ]*?)'
- '\s*(?P<return_type>\w+(\[\])*?)'
+ '\s*(?P<return_type>[\w\.]+(\[\])*?)'
'\s+(?P<name>\w+)'
'\s*\((?P<params>[^\)]*)\)')
diff --git a/base/android/jni_generator/jni_generator_tests.py b/base/android/jni_generator/jni_generator_tests.py
index 371fb26..b804474 100755
--- a/base/android/jni_generator/jni_generator_tests.py
+++ b/base/android/jni_generator/jni_generator_tests.py
@@ -796,6 +796,9 @@ static bool RegisterNativesImpl(JNIEnv* env) {
@CalledByNative
public byte[][] returnArrayOfByteArray();
+
+ @CalledByNative
+ public Bitmap.CompressFormat getCompressFormat();
"""
jni_generator.JniParams.SetFullyQualifiedClass('org/chromium/Foo')
jni_generator.JniParams.ExtractImportsAndInnerClasses(test_data)
@@ -992,6 +995,17 @@ static bool RegisterNativesImpl(JNIEnv* env) {
env_call=('Void', ''),
unchecked=False,
),
+ CalledByNative(
+ return_type='Bitmap.CompressFormat',
+ system_class=False,
+ static=False,
+ name='getCompressFormat',
+ method_id_var_name='getCompressFormat',
+ java_class_name='',
+ params=[],
+ env_call=('Void', ''),
+ unchecked=False,
+ ),
]
self.assertListEquals(golden_called_by_natives, called_by_natives)
h = jni_generator.InlHeaderFileGenerator('', 'org/chromium/TestJni',
@@ -1425,6 +1439,29 @@ Java_TestJni_returnArrayOfByteArray(JNIEnv* env, jobject obj) {
return ScopedJavaLocalRef<jobjectArray>(env, ret);
}
+static base::subtle::AtomicWord g_TestJni_getCompressFormat = 0;
+static ScopedJavaLocalRef<jobject> Java_TestJni_getCompressFormat(JNIEnv* env,
+ jobject obj) {
+ /* Must call RegisterNativesImpl() */
+ DCHECK(g_TestJni_clazz);
+ jmethodID method_id =
+ base::android::MethodID::LazyGet<
+ base::android::MethodID::TYPE_INSTANCE>(
+ env, g_TestJni_clazz,
+ "getCompressFormat",
+
+"("
+")"
+"Landroid/graphics/Bitmap$CompressFormat;",
+ &g_TestJni_getCompressFormat);
+
+ jobject ret =
+ env->CallObjectMethod(obj,
+ method_id);
+ base::android::CheckException(env);
+ return ScopedJavaLocalRef<jobject>(env, ret);
+}
+
// Step 3: RegisterNatives.
static bool RegisterNativesImpl(JNIEnv* env) {