diff options
author | Steve Block <steveblock@google.com> | 2010-01-20 13:20:50 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-01-21 18:26:15 +0000 |
commit | c2e6c16e4bf8e95fb9b73b45a7f0a7f1b7b55d06 (patch) | |
tree | 5b33d79dbad6c072f251a07bb51a17a0bf1aef8a /WebCore/bridge/jni/v8 | |
parent | 54dec9637e20bfba1857f3d54df3c43ce94ff97b (diff) | |
download | external_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.cpp | 6 | ||||
-rw-r--r-- | WebCore/bridge/jni/v8/JavaNPObjectV8.cpp | 2 | ||||
-rw-r--r-- | WebCore/bridge/jni/v8/JavaStringV8.h | 63 |
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 |