summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/bridge/jni
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-06-09 19:59:55 +0100
committerSteve Block <steveblock@google.com>2011-06-09 20:09:12 +0100
commit700ba3f86b1e8eefe7e0efe1fa344079ec7c1e24 (patch)
tree5926b1c3d07ce4b2178c0e5429894ee159818d03 /Source/WebCore/bridge/jni
parent12b73c856f825f0819e61834cb0bc76353b261d4 (diff)
downloadexternal_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.cpp12
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(';');
}