diff options
-rw-r--r-- | V8Binding/jni/jni_runtime.cpp | 15 | ||||
-rw-r--r-- | V8Binding/jni/jni_runtime.h | 18 | ||||
-rw-r--r-- | WebCore/Android.v8bindings.mk | 1 | ||||
-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 |
6 files changed, 106 insertions, 34 deletions
diff --git a/V8Binding/jni/jni_runtime.cpp b/V8Binding/jni/jni_runtime.cpp index 2b9c1cc..3b183bc 100644 --- a/V8Binding/jni/jni_runtime.cpp +++ b/V8Binding/jni/jni_runtime.cpp @@ -38,21 +38,6 @@ JavaParameter::JavaParameter(JNIEnv* env, jstring type) m_JNIType = JNITypeFromClassName(m_type.UTF8String()); } -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); -} - JavaMethod::JavaMethod(JNIEnv* env, jobject aMethod) { // Get return type diff --git a/V8Binding/jni/jni_runtime.h b/V8Binding/jni/jni_runtime.h index 735e2c2..310c63c 100644 --- a/V8Binding/jni/jni_runtime.h +++ b/V8Binding/jni/jni_runtime.h @@ -76,24 +76,6 @@ private: JNIType m_JNIType; }; - -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; -}; - - class JavaMethod { public: JavaMethod(JNIEnv*, jobject aMethod); diff --git a/WebCore/Android.v8bindings.mk b/WebCore/Android.v8bindings.mk index 683de78..6be5a1e 100644 --- a/WebCore/Android.v8bindings.mk +++ b/WebCore/Android.v8bindings.mk @@ -173,6 +173,7 @@ LOCAL_SRC_FILES += \ LOCAL_SRC_FILES += \ bridge/jni/JNIUtility.cpp \ + bridge/jni/v8/JNIBridgeV8.cpp \ bridge/jni/v8/JNIUtilityPrivate.cpp \ bridge/jni/v8/JavaNPObjectV8.cpp \ bridge/jni/v8/JavaClassV8.cpp \ 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> |