summaryrefslogtreecommitdiffstats
path: root/WebCore/bridge/jni/v8
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-01-20 13:20:50 +0000
committerSteve Block <steveblock@google.com>2010-01-21 18:26:15 +0000
commitc2e6c16e4bf8e95fb9b73b45a7f0a7f1b7b55d06 (patch)
tree5b33d79dbad6c072f251a07bb51a17a0bf1aef8a /WebCore/bridge/jni/v8
parent54dec9637e20bfba1857f3d54df3c43ce94ff97b (diff)
downloadexternal_webkit-c2e6c16e4bf8e95fb9b73b45a7f0a7f1b7b55d06.zip
external_webkit-c2e6c16e4bf8e95fb9b73b45a7f0a7f1b7b55d06.tar.gz
external_webkit-c2e6c16e4bf8e95fb9b73b45a7f0a7f1b7b55d06.tar.bz2
Updates V8 version of JavaString to use a private implementation class.
WebKit change http://trac.webkit.org/changeset/53449 moved the JSC-specific implementation of JavaString to JavaStringJSC.h. This is the V8 equivalent of that change. This is being upstreamed to webkit.org in https://bugs.webkit.org/show_bug.cgi?id=33953 Change-Id: I6cadc4f4f941aab900aeaf3251a5cad77d050b9b
Diffstat (limited to 'WebCore/bridge/jni/v8')
-rw-r--r--WebCore/bridge/jni/v8/JavaClassV8.cpp6
-rw-r--r--WebCore/bridge/jni/v8/JavaNPObjectV8.cpp2
-rw-r--r--WebCore/bridge/jni/v8/JavaStringV8.h63
3 files changed, 67 insertions, 4 deletions
diff --git a/WebCore/bridge/jni/v8/JavaClassV8.cpp b/WebCore/bridge/jni/v8/JavaClassV8.cpp
index 54b40c9..c29cf86 100644
--- a/WebCore/bridge/jni/v8/JavaClassV8.cpp
+++ b/WebCore/bridge/jni/v8/JavaClassV8.cpp
@@ -56,7 +56,7 @@ JavaClass::JavaClass(jobject anInstance)
jobject aJField = env->GetObjectArrayElement((jobjectArray)fields, i);
JavaField* aField = new JavaField(env, aJField); // deleted in the JavaClass destructor
{
- m_fields.set(aField->name(), aField);
+ m_fields.set(aField->name().UTF8String(), aField);
}
env->DeleteLocalRef(aJField);
}
@@ -69,10 +69,10 @@ JavaClass::JavaClass(jobject anInstance)
JavaMethod* aMethod = new JavaMethod(env, aJMethod); // deleted in the JavaClass destructor
MethodList* methodList;
{
- methodList = m_methods.get(aMethod->name());
+ methodList = m_methods.get(aMethod->name().UTF8String());
if (!methodList) {
methodList = new MethodList();
- m_methods.set(aMethod->name(), methodList);
+ m_methods.set(aMethod->name().UTF8String(), methodList);
}
}
methodList->append(aMethod);
diff --git a/WebCore/bridge/jni/v8/JavaNPObjectV8.cpp b/WebCore/bridge/jni/v8/JavaNPObjectV8.cpp
index 416cc9e..636d075 100644
--- a/WebCore/bridge/jni/v8/JavaNPObjectV8.cpp
+++ b/WebCore/bridge/jni/v8/JavaNPObjectV8.cpp
@@ -153,7 +153,7 @@ bool JavaNPObject_GetProperty(NPObject* obj, NPIdentifier identifier, NPVariant*
jvalue value = getJNIField(instance->javaInstance(),
field->getJNIType(),
- field->name(),
+ field->name().UTF8String(),
field->type());
convertJValueToNPVariant(value, field->getJNIType(), field->type(), result);
diff --git a/WebCore/bridge/jni/v8/JavaStringV8.h b/WebCore/bridge/jni/v8/JavaStringV8.h
new file mode 100644
index 0000000..8788e58
--- /dev/null
+++ b/WebCore/bridge/jni/v8/JavaStringV8.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2010 Apple Computer, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef JavaStringV8_h
+#define JavaStringV8_h
+
+#include "CString.h"
+#include "JNIUtility.h"
+
+
+namespace JSC {
+
+namespace Bindings {
+
+class JavaStringImpl {
+public:
+ void init() {}
+
+ void init(JNIEnv* e, jstring s)
+ {
+ int size = e->GetStringLength(s);
+ const char* cs = getCharactersFromJStringInEnv(e, s);
+ {
+ m_utf8String = WebCore::CString(cs, size);
+ }
+ releaseCharactersForJStringInEnv(e, s, cs);
+ }
+
+ const char* UTF8String() const { return m_utf8String.data(); }
+ const jchar* uchars() const { return 0; } // Not implemented
+ int length() const { return m_utf8String.length(); }
+
+private:
+ WebCore::CString m_utf8String;
+};
+
+} // namespace Bindings
+
+} // namespace JSC
+
+#endif // JavaStringV8_h