+2004-09-29 Chris Blumenberg <cblu@apple.com>
+
+ Prepended underscores to NPN methods so that when the QT plug-in loads these symbols, it uses the non-underscore versions in WebKit. Without this, the QT plug-in was failing to load when launching Safari from the command-line.
+
+ Reviewed by rjw.
+
+ * JavaScriptCore.pbproj/project.pbxproj:
+ * bindings/NP_jsobject.cpp:
+ (_NPN_CreateScriptObject):
+ (_NPN_InvokeDefault):
+ (_NPN_Invoke):
+ (_NPN_Evaluate):
+ (_NPN_GetProperty):
+ (_NPN_SetProperty):
+ (_NPN_RemoveProperty):
+ (_NPN_HasProperty):
+ (_NPN_HasMethod):
+ * bindings/c/c_class.cpp:
+ (CClass::methodsNamed):
+ (CClass::fieldNamed):
+ * bindings/c/c_instance.cpp:
+ (CInstance::CInstance):
+ (CInstance::~CInstance):
+ (CInstance::operator=):
+ (CInstance::invokeMethod):
+ (CInstance::invokeDefaultMethod):
+ * bindings/c/c_runtime.cpp:
+ * bindings/c/c_runtime.h:
+ (KJS::Bindings::CField::name):
+ (KJS::Bindings::CMethod::name):
+ * bindings/npruntime.cpp:
+ (_NPN_GetStringIdentifier):
+ (_NPN_GetStringIdentifiers):
+ (_NPN_GetIntIdentifier):
+ (_NPN_IdentifierIsString):
+ (_NPN_UTF8FromIdentifier):
+ (_NPN_IntFromIdentifier):
+ (NPN_InitializeVariantWithObject):
+ (_NPN_ReleaseVariantValue):
+ (_NPN_CreateObject):
+ (_NPN_RetainObject):
+ (_NPN_ReleaseObject):
+ (_NPN_SetExceptionWithUTF8):
+ (_NPN_SetException):
+
2004-09-26 Darin Adler <darin@apple.com>
* kjs/string_object.cpp: (StringProtoFuncImp::call): Remove strange use of high() and
700DA118065984CE00747C0B,
51CA3B5006CC2166005600E3,
51DFF2CA06CC36F6006F1ECC,
+ 84ABF1DF070B628C00A3AC05,
);
isa = PBXHeadersBuildPhase;
runOnlyForDeploymentPostprocessing = 0;
5199B1BD061B65BC0070C006,
5199B1BE061B65BC0070C006,
51DFF2C906CC36F6006F1ECC,
+ 84ABF1DE070B628C00A3AC05,
5182A53A06012C3000CBD2F2,
5182A53B06012C3000CBD2F2,
5182A45605FFCF4B00CBD2F2,
//702
//703
//704
+//840
+//841
+//842
+//843
+//844
+ 84ABF1DE070B628C00A3AC05 = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = npruntime_impl.h;
+ path = bindings/npruntime_impl.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 84ABF1DF070B628C00A3AC05 = {
+ fileRef = 84ABF1DE070B628C00A3AC05;
+ isa = PBXBuildFile;
+ settings = {
+ ATTRIBUTES = (
+ Private,
+ );
+ };
+ };
+//840
+//841
+//842
+//843
+//844
//930
//931
//932
#include <JavaScriptCore/npruntime.h>
#include <JavaScriptCore/c_utility.h>
+#include <JavaScriptCore/npruntime_impl.h>
#include <JavaScriptCore/npruntime_priv.h>
using namespace KJS;
NPObject *_NPN_CreateScriptObject (NPP npp, KJS::ObjectImp *imp, KJS::Bindings::RootObject *root)
{
- JavaScriptObject *obj = (JavaScriptObject *)NPN_CreateObject(npp, NPScriptObjectClass);
+ JavaScriptObject *obj = (JavaScriptObject *)_NPN_CreateObject(npp, NPScriptObjectClass);
obj->imp = imp;
obj->root = root;
return (NPObject *)obj;
}
-bool NPN_InvokeDefault (NPP npp, NPObject *o, const NPVariant *args, uint32_t argCount, NPVariant *result)
+bool _NPN_InvokeDefault (NPP npp, NPObject *o, const NPVariant *args, uint32_t argCount, NPVariant *result)
{
if (o->_class == NPScriptObjectClass) {
// No notion of a default function on JS objects. Just return false, can't handle.
return true;
}
-bool NPN_Invoke (NPP npp, NPObject *o, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result)
+bool _NPN_Invoke (NPP npp, NPObject *o, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result)
{
if (o->_class == NPScriptObjectClass) {
JavaScriptObject *obj = (JavaScriptObject *)o;
return true;
}
-bool NPN_Evaluate (NPP npp, NPObject *o, NPString *s, NPVariant *variant)
+bool _NPN_Evaluate (NPP npp, NPObject *o, NPString *s, NPVariant *variant)
{
if (o->_class == NPScriptObjectClass) {
JavaScriptObject *obj = (JavaScriptObject *)o;
return false;
}
-bool NPN_GetProperty (NPP npp, NPObject *o, NPIdentifier propertyName, NPVariant *variant)
+bool _NPN_GetProperty (NPP npp, NPObject *o, NPIdentifier propertyName, NPVariant *variant)
{
if (o->_class == NPScriptObjectClass) {
JavaScriptObject *obj = (JavaScriptObject *)o;
return false;
}
-bool NPN_SetProperty (NPP npp, NPObject *o, NPIdentifier propertyName, const NPVariant *variant)
+bool _NPN_SetProperty (NPP npp, NPObject *o, NPIdentifier propertyName, const NPVariant *variant)
{
if (o->_class == NPScriptObjectClass) {
JavaScriptObject *obj = (JavaScriptObject *)o;
return false;
}
-bool NPN_RemoveProperty (NPP npp, NPObject *o, NPIdentifier propertyName)
+bool _NPN_RemoveProperty (NPP npp, NPObject *o, NPIdentifier propertyName)
{
if (o->_class == NPScriptObjectClass) {
JavaScriptObject *obj = (JavaScriptObject *)o;
return false;
}
-bool NPN_HasProperty(NPP npp, NPObject *o, NPIdentifier propertyName)
+bool _NPN_HasProperty(NPP npp, NPObject *o, NPIdentifier propertyName)
{
if (o->_class == NPScriptObjectClass) {
JavaScriptObject *obj = (JavaScriptObject *)o;
return false;
}
-bool NPN_HasMethod(NPP npp, NPObject *o, NPIdentifier methodName)
+bool _NPN_HasMethod(NPP npp, NPObject *o, NPIdentifier methodName)
{
if (o->_class == NPScriptObjectClass) {
JavaScriptObject *obj = (JavaScriptObject *)o;
return methodList;
}
- NPIdentifier ident = NPN_GetStringIdentifier (_name);
+ NPIdentifier ident = _NPN_GetStringIdentifier (_name);
if (_isa->hasMethod && _isa->hasMethod (_isa, ident)){
Method *aMethod = new CMethod (ident);
CFDictionaryAddValue ((CFMutableDictionaryRef)_methods, methodName, aMethod);
return aField;
}
- NPIdentifier ident = NPN_GetStringIdentifier (name);
+ NPIdentifier ident = _NPN_GetStringIdentifier (name);
if (_isa->hasProperty && _isa->hasProperty (_isa, ident)){
aField = new CField (ident);
CFDictionaryAddValue ((CFMutableDictionaryRef)_fields, fieldName, aField);
#include <c_runtime.h>
#include <c_utility.h>
-#include <npruntime_priv.h>
+#include <JavaScriptCore/npruntime_impl.h>
+#include <JavaScriptCore/npruntime_priv.h>
#ifdef NDEBUG
#define C_LOG(formatAndArgs...) ((void)0)
CInstance::CInstance (NPObject *o)
{
- _object = NPN_RetainObject (o);
+ _object = _NPN_RetainObject (o);
_class = 0;
};
CInstance::~CInstance ()
{
- NPN_ReleaseObject (_object);
+ _NPN_ReleaseObject (_object);
delete _class;
}
CInstance::CInstance (const CInstance &other) : Instance()
{
- _object = NPN_RetainObject (other._object);
+ _object = _NPN_RetainObject (other._object);
_class = 0;
};
return *this;
NPObject *_oldObject = _object;
- _object= NPN_RetainObject (other._object);
- NPN_ReleaseObject (_oldObject);
+ _object= _NPN_RetainObject (other._object);
+ _NPN_ReleaseObject (_oldObject);
_class = 0;
return *this;
CMethod *method = 0;
method = static_cast<CMethod*>(methodList.methodAt(0));
- NPIdentifier ident = NPN_GetStringIdentifier (method->name());
+ NPIdentifier ident = _NPN_GetStringIdentifier (method->name());
if (!_object->_class->hasMethod (_object->_class, ident)) {
return Undefined();
}
_object->_class->invoke (_object, ident, cArgs, count, &resultVariant);
for (i = 0; i < count; i++) {
- NPN_ReleaseVariantValue (&cArgs[i]);
+ _NPN_ReleaseVariantValue (&cArgs[i]);
}
if (cArgs != localBuffer)
if (!NPVARIANT_IS_VOID(resultVariant)) {
resultValue = convertNPVariantToValue (exec, &resultVariant);
- NPN_ReleaseVariantValue (&resultVariant);
+ _NPN_ReleaseVariantValue (&resultVariant);
return resultValue;
}
_object->_class->invokeDefault (_object, cArgs, count, &resultVariant);
for (i = 0; i < count; i++) {
- NPN_ReleaseVariantValue (&cArgs[i]);
+ _NPN_ReleaseVariantValue (&cArgs[i]);
}
if (cArgs != localBuffer)
if (!NPVARIANT_IS_VOID(resultVariant)) {
resultValue = convertNPVariantToValue (exec, &resultVariant);
- NPN_ReleaseVariantValue (&resultVariant);
+ _NPN_ReleaseVariantValue (&resultVariant);
return resultValue;
}
* (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 <JavaScriptCore/internal.h>
#include <c_instance.h>
#include <runtime_array.h>
#include <runtime_object.h>
-
using namespace KJS;
using namespace KJS::Bindings;
#include <CoreFoundation/CoreFoundation.h>
#include <npruntime.h>
+#include <npruntime_impl.h>
#include <runtime.h>
#include <ustring.h>
virtual KJS::Value valueFromInstance(KJS::ExecState *exec, const Instance *instance) const;
virtual void setValueToInstance(KJS::ExecState *exec, const Instance *instance, const KJS::Value &aValue) const;
- virtual const char *name() const { return NPN_UTF8FromIdentifier(_fieldIdentifier); }
+ virtual const char *name() const { return _NPN_UTF8FromIdentifier(_fieldIdentifier); }
virtual RuntimeType type() const { return ""; }
private:
CMethod(NPIdentifier ident) : Method(), _methodIdentifier(ident) {};
- virtual const char *name() const { return NPN_UTF8FromIdentifier(_methodIdentifier); };
+ virtual const char *name() const { return _NPN_UTF8FromIdentifier(_methodIdentifier); };
virtual long numParameters() const { return 0; };
#include <npruntime.h>
#include <c_utility.h>
+#include <JavaScriptCore/npruntime_impl.h>
+
static Boolean stringIdentifierEqual(const void *value1, const void *value2)
{
return strcmp((const char *)value1, (const char *)value2) == 0;
return intIdentifierDictionary;
}
-NPIdentifier NPN_GetStringIdentifier (const NPUTF8 *name)
+NPIdentifier _NPN_GetStringIdentifier (const NPUTF8 *name)
{
assert (name);
return 0;
}
-void NPN_GetStringIdentifiers (const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers)
+void _NPN_GetStringIdentifiers (const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers)
{
assert (names);
assert (identifiers);
int i;
for (i = 0; i < nameCount; i++) {
- identifiers[i] = NPN_GetStringIdentifier (names[i]);
+ identifiers[i] = _NPN_GetStringIdentifier (names[i]);
}
}
}
-NPIdentifier NPN_GetIntIdentifier(int32_t intid)
+NPIdentifier _NPN_GetIntIdentifier(int32_t intid)
{
PrivateIdentifier *identifier = 0;
return (NPIdentifier)identifier;
}
-bool NPN_IdentifierIsString(NPIdentifier identifier)
+bool _NPN_IdentifierIsString(NPIdentifier identifier)
{
PrivateIdentifier *i = (PrivateIdentifier *)identifier;
return i->isString;
}
-NPUTF8 *NPN_UTF8FromIdentifier (NPIdentifier identifier)
+NPUTF8 *_NPN_UTF8FromIdentifier (NPIdentifier identifier)
{
PrivateIdentifier *i = (PrivateIdentifier *)identifier;
if (!i->isString)
return (NPUTF8 *)i->value.string;
}
+int32_t _NPN_IntFromIdentifier(NPIdentifier identifier)
+{
+ // FIXME: Implement!
+ return 0;
+}
+
NPBool NPN_VariantIsVoid (const NPVariant *variant)
{
return variant->type == NPVariantType_Void;
void NPN_InitializeVariantWithObject (NPVariant *variant, NPObject *value)
{
variant->type = NPVariantType_Object;
- variant->value.objectValue = NPN_RetainObject (value);
+ variant->value.objectValue = _NPN_RetainObject (value);
}
void NPN_InitializeVariantWithVariant (NPVariant *destination, const NPVariant *source)
}
}
-void NPN_ReleaseVariantValue (NPVariant *variant)
+void _NPN_ReleaseVariantValue (NPVariant *variant)
{
assert (variant);
if (variant->type == NPVariantType_Object) {
- NPN_ReleaseObject (variant->value.objectValue);
+ _NPN_ReleaseObject (variant->value.objectValue);
variant->value.objectValue = 0;
}
else if (variant->type == NPVariantType_String) {
}
-NPObject *NPN_CreateObject (NPP npp, NPClass *aClass)
+NPObject *_NPN_CreateObject (NPP npp, NPClass *aClass)
{
assert (aClass);
}
-NPObject *NPN_RetainObject (NPObject *obj)
+NPObject *_NPN_RetainObject (NPObject *obj)
{
assert (obj);
}
-void NPN_ReleaseObject (NPObject *obj)
+void _NPN_ReleaseObject (NPObject *obj)
{
assert (obj);
assert (obj->referenceCount >= 1);
}
}
-void NPN_SetExceptionWithUTF8 (NPObject *obj, const NPUTF8 *message, int32_t length)
+void _NPN_SetExceptionWithUTF8 (NPObject *obj, const NPUTF8 *message, int32_t length)
{
assert (obj);
assert (message);
NPString string;
string.UTF8Characters = message;
string.UTF8Length = length;
- NPN_SetException (obj, &string);
+ _NPN_SetException (obj, &string);
}
}
-void NPN_SetException (NPObject *obj, NPString *message)
+void _NPN_SetException (NPObject *obj, NPString *message)
{
// FIX ME. Need to implement.
}
--- /dev/null
+/*
+ * Copyright (C) 2004 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:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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 APPLE COMPUTER, INC. ``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 _NP_RUNTIME_IMPL_H_
+#define _NP_RUNTIME_IMPL_H_
+
+#include "npruntime.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void _NPN_ReleaseVariantValue(NPVariant *variant);
+extern NPIdentifier _NPN_GetStringIdentifier(const NPUTF8 *name);
+extern void _NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount, NPIdentifier *identifiers);
+extern NPIdentifier _NPN_GetIntIdentifier(int32_t intid);
+extern bool _NPN_IdentifierIsString(NPIdentifier identifier);
+extern NPUTF8 *_NPN_UTF8FromIdentifier(NPIdentifier identifier);
+extern int32_t _NPN_IntFromIdentifier(NPIdentifier identifier);
+extern NPObject *_NPN_CreateObject(NPP npp, NPClass *aClass);
+extern NPObject *_NPN_RetainObject(NPObject *obj);
+extern void _NPN_ReleaseObject(NPObject *obj);
+extern bool _NPN_Invoke(NPP npp, NPObject *npobj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result);
+extern bool _NPN_InvokeDefault(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant *result);
+extern bool _NPN_Evaluate(NPP npp, NPObject *npobj, NPString *script, NPVariant *result);
+extern bool _NPN_GetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName, NPVariant *result);
+extern bool _NPN_SetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName, const NPVariant *value);
+extern bool _NPN_RemoveProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
+extern bool _NPN_HasProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
+extern bool _NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName);
+extern void _NPN_SetException(NPObject *obj, NPString *message);
+
+#ifdef __cplusplus
+} /* end extern "C" */
+#endif
+
+#endif