diff options
author | Steve Block <steveblock@google.com> | 2011-06-09 19:59:55 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-06-09 20:09:12 +0100 |
commit | 700ba3f86b1e8eefe7e0efe1fa344079ec7c1e24 (patch) | |
tree | 5926b1c3d07ce4b2178c0e5429894ee159818d03 /Source/WebCore/bridge/jni | |
parent | 12b73c856f825f0819e61834cb0bc76353b261d4 (diff) | |
download | external_webkit-700ba3f86b1e8eefe7e0efe1fa344079ec7c1e24.zip external_webkit-700ba3f86b1e8eefe7e0efe1fa344079ec7c1e24.tar.gz external_webkit-700ba3f86b1e8eefe7e0efe1fa344079ec7c1e24.tar.bz2 |
Fix a bug in the V8 JNI bindings when creating JNI method signatures
This was introduced by the latest merge to WebKit r82507. WebKit now
uses a new JavaTypeString, distinct from JavaTypeObject, for
representing strings in the JNI bridge. We need to account for this
when building the JNI method signature.
See https://bugs.webkit.org/show_bug.cgi?id=62389 for details.
Bug: 4585284
Change-Id: I6a54679b954c32bf03d715da3c958c61baa5fecc
Diffstat (limited to 'Source/WebCore/bridge/jni')
-rw-r--r-- | Source/WebCore/bridge/jni/JavaMethodJobject.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/WebCore/bridge/jni/JavaMethodJobject.cpp b/Source/WebCore/bridge/jni/JavaMethodJobject.cpp index 2f2802c..5df16f9 100644 --- a/Source/WebCore/bridge/jni/JavaMethodJobject.cpp +++ b/Source/WebCore/bridge/jni/JavaMethodJobject.cpp @@ -130,7 +130,13 @@ const char* JavaMethodJobject::signature() const appendClassName(signatureBuilder, javaClassName.data()); else { signatureBuilder.append(signatureFromJavaType(type)); +#if PLATFORM(ANDROID) + // FIXME: Upstream to WebKit + // https://bugs.webkit.org/show_bug.cgi?id=62389 + if (type == JavaTypeObject || type == JavaTypeString) { +#else if (type == JavaTypeObject) { +#endif appendClassName(signatureBuilder, javaClassName.data()); signatureBuilder.append(';'); } @@ -143,7 +149,13 @@ const char* JavaMethodJobject::signature() const appendClassName(signatureBuilder, returnType); else { signatureBuilder.append(signatureFromJavaType(m_returnType)); +#if PLATFORM(ANDROID) + // FIXME: Upstream to WebKit + // https://bugs.webkit.org/show_bug.cgi?id=62389 + if (m_returnType == JavaTypeObject || m_returnType == JavaTypeString) { +#else if (m_returnType == JavaTypeObject) { +#endif appendClassName(signatureBuilder, returnType); signatureBuilder.append(';'); } |