diff options
author | ycheo@chromium.org <ycheo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-18 18:53:12 +0000 |
---|---|---|
committer | ycheo@chromium.org <ycheo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-18 18:53:12 +0000 |
commit | db5f70f1dda5cbb1bdd494b6bc2ea98d9fb3e651 (patch) | |
tree | 7b22d4538eb573566f9e9a5f59477f5994d3692f /base/android | |
parent | d7a24e2559c053056d557c90eb86a000c1e64a0d (diff) | |
download | chromium_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-x | base/android/jni_generator/jni_generator.py | 2 | ||||
-rwxr-xr-x | base/android/jni_generator/jni_generator_tests.py | 37 |
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) { |