diff options
author | Steve Block <steveblock@google.com> | 2010-01-21 15:58:20 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-01-21 18:22:13 +0000 |
commit | 54dec9637e20bfba1857f3d54df3c43ce94ff97b (patch) | |
tree | 9b58e2b839e3bfa85c54afb017b5c24602da6cd4 /V8Binding/jni | |
parent | 40c8c4abfc2d689e4aa21c5dfab61ce45e45b38b (diff) | |
download | external_webkit-54dec9637e20bfba1857f3d54df3c43ce94ff97b.zip external_webkit-54dec9637e20bfba1857f3d54df3c43ce94ff97b.tar.gz external_webkit-54dec9637e20bfba1857f3d54df3c43ce94ff97b.tar.bz2 |
Move V8 jni_npobject to bridge/jni/v8/JavaNPObjectV8 and fix style
Change-Id: Icf99c709929ef14551de61e55780b97767575f01
Diffstat (limited to 'V8Binding/jni')
-rw-r--r-- | V8Binding/jni/jni_npobject.cpp | 167 | ||||
-rw-r--r-- | V8Binding/jni/jni_npobject.h | 52 |
2 files changed, 0 insertions, 219 deletions
diff --git a/V8Binding/jni/jni_npobject.cpp b/V8Binding/jni/jni_npobject.cpp deleted file mode 100644 index 2c79fb6..0000000 --- a/V8Binding/jni/jni_npobject.cpp +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright 2009, 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 APPLE COMPUTER, INC. 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 "jni_npobject.h" - -#include "JNIUtility.h" -#include "JavaClassV8.h" -#include "JavaInstanceV8.h" -#include "jni_runtime.h" -// This source file should be in bridge/jni, so it's OK to use the private -// NPAPI header from here. -#include "npruntime_impl.h" - -namespace JSC { namespace Bindings { -static NPObject* AllocJavaNPObject(NPP, NPClass*) -{ - JavaNPObject* obj = - static_cast<JavaNPObject*>(malloc(sizeof(JavaNPObject))); - if (obj == 0) - return 0; - bzero(obj, sizeof(JavaNPObject)); - return reinterpret_cast<NPObject*>(obj); -} - -static void FreeJavaNPObject(NPObject* npobj) -{ - JavaNPObject* obj = reinterpret_cast<JavaNPObject*>(npobj); - obj->_instance = 0; // free does not call the destructor - free(obj); -} - -static NPClass JavaNPObjectClass = { - NP_CLASS_STRUCT_VERSION, - AllocJavaNPObject, // allocate, - FreeJavaNPObject, // free, - 0, // invalidate - JavaNPObject_HasMethod, - JavaNPObject_Invoke, - 0, // invokeDefault, - JavaNPObject_HasProperty, - JavaNPObject_GetProperty, - 0, // setProperty - 0, // removeProperty - 0, // enumerate - 0 // construct -}; - - -NPObject* JavaInstanceToNPObject(JavaInstance* instance) { - JavaNPObject* object = reinterpret_cast<JavaNPObject*>(_NPN_CreateObject(0, &JavaNPObjectClass)); - object->_instance = instance; - return reinterpret_cast<NPObject*>(object); -} - - -// Returns null if obj is not a wrapper of JavaInstance -JavaInstance* ExtractJavaInstance(NPObject* obj) { - if (obj->_class == &JavaNPObjectClass) { - return reinterpret_cast<JavaNPObject*>(obj)->_instance.get(); - } - return 0; -} - -bool JavaNPObject_HasMethod(NPObject* obj, NPIdentifier identifier) { - JavaInstance* instance = ExtractJavaInstance(obj); - if (instance == 0) - return false; - NPUTF8* name = _NPN_UTF8FromIdentifier(identifier); - if (name == 0) - return false; - - instance->begin(); - bool result = (instance->getClass()->methodsNamed(name).size() > 0); - instance->end(); - - // TODO: use NPN_MemFree - free(name); - - return result; -} - -bool JavaNPObject_Invoke(NPObject* obj, NPIdentifier identifier, - const NPVariant* args, uint32_t argCount, NPVariant* result) { - JavaInstance* instance = ExtractJavaInstance(obj); - if (instance == 0) - return false; - NPUTF8* name = _NPN_UTF8FromIdentifier(identifier); - if (name == 0) - return false; - - instance->begin(); - bool r = instance->invokeMethod(name, args, argCount, result); - instance->end(); - - // TODO: use NPN_MemFree - free(name); - return r; - -} - -bool JavaNPObject_HasProperty(NPObject* obj, NPIdentifier identifier) { - JavaInstance* instance = ExtractJavaInstance(obj); - if (instance == 0) - return false; - NPUTF8* name = _NPN_UTF8FromIdentifier(identifier); - if (name == 0) - return false; - instance->begin(); - bool result = instance->getClass()->fieldNamed(name) != 0; - instance->end(); - free(name); - return result; -} - -bool JavaNPObject_GetProperty(NPObject* obj, NPIdentifier identifier, NPVariant* result) { - VOID_TO_NPVARIANT(*result); - JavaInstance* instance = ExtractJavaInstance(obj); - if (instance == 0) - return false; - NPUTF8* name = _NPN_UTF8FromIdentifier(identifier); - if (name == 0) - return false; - - instance->begin(); - JavaField* field = instance->getClass()->fieldNamed(name); - instance->end(); - free(name); // TODO: use NPN_MemFree - - if (field == 0) { - return false; - } - - jvalue value = getJNIField(instance->javaInstance(), - field->getJNIType(), - field->name(), - field->type()); - - convertJValueToNPVariant(value, field->getJNIType(), field->type(), result); - - return true; -} - -}} // namespace diff --git a/V8Binding/jni/jni_npobject.h b/V8Binding/jni/jni_npobject.h deleted file mode 100644 index 943b661..0000000 --- a/V8Binding/jni/jni_npobject.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2009, 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 APPLE COMPUTER, INC. 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 JNI_NPOBJECT_H_ -#define JNI_NPOBJECT_H_ - -#include "npruntime.h" -#include "jni_runtime.h" - -#include <wtf/RefPtr.h> -#include <JavaVM/jni.h> - -namespace JSC { namespace Bindings { - -struct JavaNPObject { - NPObject _object; - RefPtr<JavaInstance> _instance; -}; - -NPObject* JavaInstanceToNPObject(JavaInstance* instance); -JavaInstance* ExtractJavaInstance(NPObject* obj); - -bool JavaNPObject_HasMethod(NPObject* obj, NPIdentifier name); -bool JavaNPObject_Invoke(NPObject* obj, NPIdentifier methodName, const NPVariant* args, uint32_t argCount, NPVariant* result); -bool JavaNPObject_HasProperty(NPObject* obj, NPIdentifier name); -bool JavaNPObject_GetProperty(NPObject* obj, NPIdentifier name, NPVariant* ressult); - -} } - -#endif JNI_NPOBJECT_H_ |