Commit 66b0de31 authored by steveblock@google.com's avatar steveblock@google.com

Adds V8-specific JNI bridge classes

https://bugs.webkit.org/show_bug.cgi?id=34166

Reviewed by Ariya Hidayat.

This is the V8 equivalent of bridge/jni/jsc/JNIBridgeJSC.

No new tests, build fix only.

* Android.v8bindings.mk: Modified. Added JNIBridge.cpp and JNIBridgeV8.cpp
* bridge/Bridge.h: Modified. Added missing include for Noncopyable.h
* bridge/jni/v8/JNIBridgeV8.cpp: Added.
(JavaField::JavaField):
* bridge/jni/v8/JNIBridgeV8.h: Added.
(JSC::Bindings::JavaField::name):
(JSC::Bindings::JavaField::type):
(JSC::Bindings::JavaField::getJNIType):



git-svn-id: svn://svn.chromium.org/blink/trunk@54175 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 78303937
...@@ -178,6 +178,8 @@ LOCAL_SRC_FILES += \ ...@@ -178,6 +178,8 @@ LOCAL_SRC_FILES += \
LOCAL_SRC_FILES += \ LOCAL_SRC_FILES += \
bridge/jni/JNIUtility.cpp \ bridge/jni/JNIUtility.cpp \
bridge/jni/JNIBridge.cpp \
bridge/jni/v8/JNIBridgeV8.cpp \
bridge/jni/v8/JNIUtilityPrivate.cpp \ bridge/jni/v8/JNIUtilityPrivate.cpp \
bridge/jni/v8/JavaClassV8.cpp \ bridge/jni/v8/JavaClassV8.cpp \
bridge/jni/v8/JavaInstanceV8.cpp bridge/jni/v8/JavaInstanceV8.cpp
2010-02-01 Steve Block <steveblock@google.com>
Reviewed by Ariya Hidayat.
Adds V8-specific JNI bridge classes
https://bugs.webkit.org/show_bug.cgi?id=34166
This is the V8 equivalent of bridge/jni/jsc/JNIBridgeJSC.
No new tests, build fix only.
* Android.v8bindings.mk: Modified. Added JNIBridge.cpp and JNIBridgeV8.cpp
* bridge/Bridge.h: Modified. Added missing include for Noncopyable.h
* bridge/jni/v8/JNIBridgeV8.cpp: Added.
(JavaField::JavaField):
* bridge/jni/v8/JNIBridgeV8.h: Added.
(JSC::Bindings::JavaField::name):
(JSC::Bindings::JavaField::type):
(JSC::Bindings::JavaField::getJNIType):
2010-02-01 Steve Block <steveblock@google.com> 2010-02-01 Steve Block <steveblock@google.com>
Reviewed by Ariya Hidayat. Reviewed by Ariya Hidayat.
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#define Bridge_h #define Bridge_h
#include "BridgeJSC.h" #include "BridgeJSC.h"
#include <wtf/Noncopyable.h>
namespace JSC { namespace JSC {
......
/*
* 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);
}
/*
* 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 "JNIBridge.h" // For JavaString
#include "JavaInstanceV8.h" // For JObjectWrapper
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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment