Prepended underscores to NPN methods so that when the QT plug-in loads these symbols...
authorcblu <cblu@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Sep 2004 01:32:04 +0000 (01:32 +0000)
committercblu <cblu@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Sep 2004 01:32:04 +0000 (01:32 +0000)
        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):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7733 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/JavaScriptCore.pbproj/project.pbxproj
JavaScriptCore/bindings/NP_jsobject.cpp
JavaScriptCore/bindings/c/c_class.cpp
JavaScriptCore/bindings/c/c_instance.cpp
JavaScriptCore/bindings/c/c_runtime.cpp
JavaScriptCore/bindings/c/c_runtime.h
JavaScriptCore/bindings/npruntime.cpp
JavaScriptCore/bindings/npruntime_impl.h [new file with mode: 0644]

index 0cc60de69aad3fd01f14004c2c14581b1b26fc74..47e0cb60f8ede15a838481f4635f39aabca1edc0 100644 (file)
@@ -1,3 +1,48 @@
+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
index 829940bd215a53827f1fea3438e3a1bbfc1044d2..bfaf39fe7d9800c5dde13609726ba803a1eddc9f 100644 (file)
                                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
index d41c43cd2d4154fbcfba53970ffe6735da439644..d611a6ff8f7e754bc7872236bdc76a492f151bbf 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <JavaScriptCore/npruntime.h>
 #include <JavaScriptCore/c_utility.h>
+#include <JavaScriptCore/npruntime_impl.h>
 #include <JavaScriptCore/npruntime_priv.h>
 
 using namespace KJS;
@@ -87,7 +88,7 @@ Identifier identiferFromNPIdentifier(const NPUTF8 *name)
 
 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;    
@@ -97,7 +98,7 @@ NPObject *_NPN_CreateScriptObject (NPP npp, KJS::ObjectImp *imp, KJS::Bindings::
     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.
@@ -112,7 +113,7 @@ bool NPN_InvokeDefault (NPP npp, NPObject *o, const NPVariant *args, uint32_t ar
     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; 
@@ -158,7 +159,7 @@ bool NPN_Invoke (NPP npp, NPObject *o, NPIdentifier methodName, const NPVariant
     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; 
@@ -194,7 +195,7 @@ bool NPN_Evaluate (NPP npp, NPObject *o, NPString *s, NPVariant *variant)
     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; 
@@ -249,7 +250,7 @@ bool NPN_GetProperty (NPP npp, NPObject *o, NPIdentifier propertyName, NPVariant
     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; 
@@ -274,7 +275,7 @@ bool NPN_SetProperty (NPP npp, NPObject *o, NPIdentifier propertyName, const NPV
     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; 
@@ -306,7 +307,7 @@ bool NPN_RemoveProperty (NPP npp, NPObject *o, NPIdentifier propertyName)
     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; 
@@ -335,7 +336,7 @@ bool NPN_HasProperty(NPP npp, NPObject *o, NPIdentifier propertyName)
     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; 
index 43c406df0c4a61398602a35d90867dcd45aa85d5..0a5f9335ed4c7e38abc155e09aefca30f6d07a7f 100644 (file)
@@ -95,7 +95,7 @@ MethodList CClass::methodsNamed(const char *_name) const
         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);
@@ -117,7 +117,7 @@ Field *CClass::fieldNamed(const char *name, Instance *instance) const
         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);
index 2010bba3d3711af9b4f5d5acc5d4d68c88c076b4..f77bed912d279a96935021240c38575aa6626e0d 100644 (file)
@@ -27,7 +27,8 @@
 #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)
@@ -43,20 +44,20 @@ using namespace KJS;
 
 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;
 };
 
@@ -65,8 +66,8 @@ CInstance &CInstance::operator=(const CInstance &other){
         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;
@@ -102,7 +103,7 @@ Value CInstance::invokeMethod (KJS::ExecState *exec, const MethodList &methodLis
     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();
     }
@@ -124,7 +125,7 @@ Value CInstance::invokeMethod (KJS::ExecState *exec, const MethodList &methodLis
     _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)
@@ -133,7 +134,7 @@ Value CInstance::invokeMethod (KJS::ExecState *exec, const MethodList &methodLis
     if (!NPVARIANT_IS_VOID(resultVariant)) {
         resultValue = convertNPVariantToValue (exec, &resultVariant);
         
-        NPN_ReleaseVariantValue (&resultVariant);
+        _NPN_ReleaseVariantValue (&resultVariant);
         
         return resultValue;
     }
@@ -164,7 +165,7 @@ Value CInstance::invokeDefaultMethod (KJS::ExecState *exec, const List &args)
         _object->_class->invokeDefault (_object, cArgs, count, &resultVariant);
 
         for (i = 0; i < count; i++) {
-            NPN_ReleaseVariantValue (&cArgs[i]);
+            _NPN_ReleaseVariantValue (&cArgs[i]);
         }
 
         if (cArgs != localBuffer)
@@ -173,7 +174,7 @@ Value CInstance::invokeDefaultMethod (KJS::ExecState *exec, const List &args)
         if (!NPVARIANT_IS_VOID(resultVariant)) {
             resultValue = convertNPVariantToValue (exec, &resultVariant);
             
-            NPN_ReleaseVariantValue (&resultVariant);
+            _NPN_ReleaseVariantValue (&resultVariant);
             
             return resultValue;
         }
index 65d03b9c58c122f76898848d7a662fdaf93457ed..d431ffaf76c96ec1fec689e6b01324272200efe8 100644 (file)
@@ -22,6 +22,7 @@
  * (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>
@@ -31,7 +32,6 @@
 #include <runtime_array.h>
 #include <runtime_object.h>
 
-
 using namespace KJS;
 using namespace KJS::Bindings;
 
index 7b2d5323dffdaa99c55863d802c65b7c2f58c584..5cf8f8c314b731668d450058954fa243116fc0ba 100644 (file)
@@ -28,6 +28,7 @@
 #include <CoreFoundation/CoreFoundation.h>
 
 #include <npruntime.h>
+#include <npruntime_impl.h>
 
 #include <runtime.h>
 #include <ustring.h>
@@ -51,7 +52,7 @@ public:
     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:
@@ -66,7 +67,7 @@ public:
 
     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; };
 
index 7fc51774af96d81af73152810d4de0be2e3f8d9b..bf278a83dcc22d064f08b5e5e77e13cce77fdc3a 100644 (file)
@@ -27,6 +27,8 @@
 #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;
@@ -98,7 +100,7 @@ static CFMutableDictionaryRef getIntIdentifierDictionary()
     return intIdentifierDictionary;
 }
 
-NPIdentifier NPN_GetStringIdentifier (const NPUTF8 *name)
+NPIdentifier _NPN_GetStringIdentifier (const NPUTF8 *name)
 {
     assert (name);
     
@@ -122,7 +124,7 @@ NPIdentifier NPN_GetStringIdentifier (const NPUTF8 *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);
@@ -131,12 +133,12 @@ void NPN_GetStringIdentifiers (const NPUTF8 **names, int32_t nameCount, NPIdenti
         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;
     
@@ -152,13 +154,13 @@ NPIdentifier NPN_GetIntIdentifier(int32_t intid)
     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)
@@ -167,6 +169,12 @@ NPUTF8 *NPN_UTF8FromIdentifier (NPIdentifier identifier)
     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;
@@ -311,7 +319,7 @@ void NPN_InitializeVariantWithStringCopy (NPVariant *variant, const NPString *va
 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)
@@ -352,12 +360,12 @@ void NPN_InitializeVariantWithVariant (NPVariant *destination, const NPVariant *
     }
 }
 
-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) {
@@ -370,7 +378,7 @@ void NPN_ReleaseVariantValue (NPVariant *variant)
 }
 
 
-NPObject *NPN_CreateObject (NPP npp, NPClass *aClass)
+NPObject *_NPN_CreateObject (NPP npp, NPClass *aClass)
 {
     assert (aClass);
 
@@ -392,7 +400,7 @@ NPObject *NPN_CreateObject (NPP npp, NPClass *aClass)
 }
 
 
-NPObject *NPN_RetainObject (NPObject *obj)
+NPObject *_NPN_RetainObject (NPObject *obj)
 {
     assert (obj);
 
@@ -403,7 +411,7 @@ NPObject *NPN_RetainObject (NPObject *obj)
 }
 
 
-void NPN_ReleaseObject (NPObject *obj)
+void _NPN_ReleaseObject (NPObject *obj)
 {
     assert (obj);
     assert (obj->referenceCount >= 1);
@@ -420,7 +428,7 @@ void NPN_ReleaseObject (NPObject *obj)
     }
 }
 
-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);
@@ -429,12 +437,12 @@ void NPN_SetExceptionWithUTF8 (NPObject *obj, const NPUTF8 *message, int32_t len
         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.
 }
diff --git a/JavaScriptCore/bindings/npruntime_impl.h b/JavaScriptCore/bindings/npruntime_impl.h
new file mode 100644 (file)
index 0000000..6fdef39
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * 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