diff options
author | Steve Block <steveblock@google.com> | 2010-01-21 14:45:47 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-01-26 16:40:00 +0000 |
commit | aefef8d800d34d6733c13b05c7cfe214d06b62d8 (patch) | |
tree | 3768095b75d4921b17ceb64dc74b6a2eb91aa2ab /WebCore/bridge | |
parent | ab3eedd7e7e8a8ab78e3a507f85afcc6353461b0 (diff) | |
download | external_webkit-aefef8d800d34d6733c13b05c7cfe214d06b62d8.zip external_webkit-aefef8d800d34d6733c13b05c7cfe214d06b62d8.tar.gz external_webkit-aefef8d800d34d6733c13b05c7cfe214d06b62d8.tar.bz2 |
Moves V8's JavaField from V8's jni_runtime to JavaClassV8 and fixes style
JavaField is script-engine specific. The JSC version of JavaField was moved out
of the script-independent file JNIBridge (previosuly named jni_runtime) in
http://trac.webkit.org/changeset/53849
This change makes the equivalent move for V8.
This will make V8's version of jni_runtime script-independent, allowing it to be
merged with JNIBridge in WebCore in the future.
This change is being upstreamed to webkit.org in
https://bugs.webkit.org/show_bug.cgi?id=34166
Change-Id: I7b35bfe4e8e7820623a824028eb64d06421bdb6b
Diffstat (limited to 'WebCore/bridge')
-rw-r--r-- | WebCore/bridge/jni/v8/JNIBridgeV8.cpp | 44 | ||||
-rw-r--r-- | WebCore/bridge/jni/v8/JNIBridgeV8.h | 60 | ||||
-rw-r--r-- | WebCore/bridge/jni/v8/JavaClassV8.h | 2 |
3 files changed, 105 insertions, 1 deletions
diff --git a/WebCore/bridge/jni/v8/JNIBridgeV8.cpp b/WebCore/bridge/jni/v8/JNIBridgeV8.cpp new file mode 100644 index 0000000..9fb1bf3 --- /dev/null +++ b/WebCore/bridge/jni/v8/JNIBridgeV8.cpp @@ -0,0 +1,44 @@ +/* + * Copyright 2010, The Android Open Source Project + * + * 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. + */ + +#include "config.h" +#include "JNIBridgeV8.h" + +using namespace JSC::Bindings; + +JavaField::JavaField(JNIEnv* env, jobject aField) +{ + // Get field type + jobject fieldType = callJNIMethod<jobject>(aField, "getType", "()Ljava/lang/Class;"); + jstring fieldTypeName = static_cast<jstring>(callJNIMethod<jobject>(fieldType, "getName", "()Ljava/lang/String;")); + m_type = JavaString(env, fieldTypeName); + m_JNIType = JNITypeFromClassName(m_type.UTF8String()); + + // Get field name + jstring fieldName = static_cast<jstring>(callJNIMethod<jobject>(aField, "getName", "()Ljava/lang/String;")); + m_name = JavaString(env, fieldName); + + m_field = new JObjectWrapper(aField); +} diff --git a/WebCore/bridge/jni/v8/JNIBridgeV8.h b/WebCore/bridge/jni/v8/JNIBridgeV8.h new file mode 100644 index 0000000..3922d62 --- /dev/null +++ b/WebCore/bridge/jni/v8/JNIBridgeV8.h @@ -0,0 +1,60 @@ +/* + * Copyright 2010, The Android Open Source Project + * + * 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 JNIBridgeV8_h +#define JNIBridgeV8_h + +#include "JNIUtility.h" +#include "JavaInstanceV8.h" +#include "JavaStringV8.h" +#include "jni_runtime.h" + + +namespace JSC { + +namespace Bindings { + +class JavaField +{ +public: + JavaField(JNIEnv*, jobject aField); + + const JavaString& name() const { return m_name; } + const char* type() const { return m_type.UTF8String(); } + + JNIType getJNIType() const { return m_JNIType; } + +private: + JavaString m_name; + JavaString m_type; + JNIType m_JNIType; + RefPtr<JObjectWrapper> m_field; +}; + +} // namespace Bindings + +} // namespace JSC + +#endif // JNIBridgeV8_h diff --git a/WebCore/bridge/jni/v8/JavaClassV8.h b/WebCore/bridge/jni/v8/JavaClassV8.h index 12cdf93..2533d0e 100644 --- a/WebCore/bridge/jni/v8/JavaClassV8.h +++ b/WebCore/bridge/jni/v8/JavaClassV8.h @@ -27,9 +27,9 @@ #ifndef JavaClassV8_h #define JavaClassV8_h +#include "JNIBridgeV8.h" #include "PlatformString.h" #include "StringHash.h" -#include "jni_runtime.h" #include <wtf/HashMap.h> #include <wtf/Vector.h> |