[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.21-584-g1e41756

ap at apple.com ap at apple.com
Fri Feb 26 22:26:15 UTC 2010


The following commit has been merged in the webkit-1.1 branch:
commit 1efdb2165e8d98ee7e245ec8cd7a9750fc05aa25
Author: ap at apple.com <ap at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Feb 20 08:24:45 2010 +0000

            Reviewed by Maciej Stachowiak.
    
            https://bugs.webkit.org/show_bug.cgi?id=9761
            LiveConnect string conversion fails for java.lang.Object
    
            Can't test Java in DRT (I wonder why).
    
            * bridge/jni/jsc/JNIUtilityPrivate.cpp: (JSC::Bindings::convertValueToJValue):
            Added the necessary conversion. Also, removed CONVERT_NULL_TO_EMPTY_STRING dead code.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55044 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 6ff68a9..4f30020 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-02-20  Alexey Proskuryakov  <ap at apple.com>
+
+        Reviewed by Maciej Stachowiak.
+
+        https://bugs.webkit.org/show_bug.cgi?id=9761
+        LiveConnect string conversion fails for java.lang.Object
+
+        Can't test Java in DRT (I wonder why).
+
+        * bridge/jni/jsc/JNIUtilityPrivate.cpp: (JSC::Bindings::convertValueToJValue):
+        Added the necessary conversion. Also, removed CONVERT_NULL_TO_EMPTY_STRING dead code.
+
 2010-02-19  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by David Levin.
diff --git a/WebCore/bridge/jni/jsc/JNIUtilityPrivate.cpp b/WebCore/bridge/jni/jsc/JNIUtilityPrivate.cpp
index e238ab8..33c79ce 100644
--- a/WebCore/bridge/jni/jsc/JNIUtilityPrivate.cpp
+++ b/WebCore/bridge/jni/jsc/JNIUtilityPrivate.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2003, 2010 Apple, Inc.  All rights reserved.
  * Copyright 2009, The Android Open Source Project
  *
  * Redistribution and use in source and binary forms, with or without
@@ -199,27 +199,27 @@ jvalue convertValueToJValue(ExecState* exec, JSValue value, JNIType jniType, con
                 }
             }
 
-            // Now convert value to a string if the target type is a java.lang.string, and we're not
-            // converting from a Null.
-            if (!result.l && !strcmp(javaClassName, "java.lang.String")) {
-#ifdef CONVERT_NULL_TO_EMPTY_STRING
-                if (value->isNull()) {
-                    JNIEnv* env = getJNIEnv();
-                    jchar buf[2];
-                    jobject javaString = env->functions->NewString(env, buf, 0);
-                    result.l = javaString;
+            if (!result.l) {
+                // Convert value to a string if the target type is a java.lang.string, and we're not
+                // converting from a null.
+                if (!strcmp(javaClassName, "java.lang.String")) {
+                    if (!value.isNull()) {
+                        UString stringValue = value.toString(exec);
+                        JNIEnv* env = getJNIEnv();
+                        jobject javaString = env->functions->NewString(env, (const jchar*)stringValue.data(), stringValue.size());
+                        result.l = javaString;
+                    }
+                // JS strings are converted to Java strings if argument type is Object.
+                } else if (!strcmp(javaClassName, "java.lang.Object")) {
+                    if (value.isString()) {
+                        UString stringValue = asString(value)->value(exec);
+                        JNIEnv* env = getJNIEnv();
+                        jobject javaString = env->functions->NewString(env, (const jchar*)stringValue.data(), stringValue.size());
+                        result.l = javaString;
+                    }
                 } else
-#else
-                if (!value.isNull())
-#endif
-                {
-                    UString stringValue = value.toString(exec);
-                    JNIEnv* env = getJNIEnv();
-                    jobject javaString = env->functions->NewString(env, (const jchar *)stringValue.data(), stringValue.size());
-                    result.l = javaString;
-                }
-            } else if (!result.l)
-                bzero(&result, sizeof(jvalue)); // Handle it the same as a void case
+                    bzero(&result, sizeof(jvalue)); // Handle it the same as a void case
+            }
         }
         break;
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list