summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--generic/tclOO.decls2
-rw-r--r--generic/tclOO.h14
-rw-r--r--generic/tclOODecls.h87
-rw-r--r--generic/tclOOIntDecls.h53
5 files changed, 66 insertions, 96 deletions
diff --git a/ChangeLog b/ChangeLog
index ebf1962..117246f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-09-28 Jan Nijtmans <nijtmans@users.sf.net>
+
+ * generic/tclOO.h: [RFE 3010352]: make all TclOO API functions
+ * generic/tclOODecls.h: MODULE_SCOPE
+ * generic/tclOOIntDecls.h:
+
2011-09-27 Donal K. Fellows <dkf@users.sf.net>
* generic/tclIndexObj.c (Tcl_ParseArgsObjv): [Bug 3413857]: Corrected
diff --git a/generic/tclOO.decls b/generic/tclOO.decls
index 027dcd0..31d1113 100644
--- a/generic/tclOO.decls
+++ b/generic/tclOO.decls
@@ -6,7 +6,7 @@ library tclOO
interface tclOO
hooks tclOOInt
-scspec EXTERN
+scspec TCLOOAPI
declare 0 {
Tcl_Object Tcl_CopyObjectInstance(Tcl_Interp *interp,
diff --git a/generic/tclOO.h b/generic/tclOO.h
index c791930..fef2bd0 100644
--- a/generic/tclOO.h
+++ b/generic/tclOO.h
@@ -14,6 +14,20 @@
#define TCLOO_H_INCLUDED
#include "tcl.h"
+#ifndef TCLOOAPI
+# if defined(BUILD_tcl) || defined(BUILD_TclOO)
+# define TCLOOAPI MODULE_SCOPE
+# else
+# define TCLOOAPI extern
+# undef USE_TCLOO_STUBS
+# define USE_TCLOO_STUBS 1
+# endif
+#endif
+
+extern const char *TclOOInitializeStubs(
+ Tcl_Interp *, const char *version);
+#define Tcl_OOInitStubs(interp) TclOOInitializeStubs((interp), TCLOO_VERSION)
+
/*
* Be careful when it comes to versioning; need to make sure that the
* standalone TclOO version matches. Also make sure that this matches the
diff --git a/generic/tclOODecls.h b/generic/tclOODecls.h
index 80a10bb..6316303 100644
--- a/generic/tclOODecls.h
+++ b/generic/tclOODecls.h
@@ -5,31 +5,6 @@
#ifndef _TCLOODECLS
#define _TCLOODECLS
-#undef TCL_STORAGE_CLASS
-#ifdef BUILD_tcl
-# define TCL_STORAGE_CLASS DLLEXPORT
-#else
-# ifdef USE_TCL_STUBS
-# define TCL_STORAGE_CLASS
-# else
-# define TCL_STORAGE_CLASS DLLIMPORT
-# endif
-#endif
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tclOO.decls script.
- */
-
-#if defined(USE_TCL_STUBS)
-extern const char *TclOOInitializeStubs(Tcl_Interp *, const char *version);
-#define Tcl_OOInitStubs(interp) TclOOInitializeStubs((interp),TCLOO_VERSION)
-#else
-#define Tcl_OOInitStubs(interp) \
- Tcl_PkgRequire((interp),"TclOO",TCLOO_VERSION,0)
-#endif
-
/* !BEGIN!: Do not edit below this line. */
/*
@@ -37,92 +12,92 @@ extern const char *TclOOInitializeStubs(Tcl_Interp *, const char *version);
*/
/* 0 */
-EXTERN Tcl_Object Tcl_CopyObjectInstance(Tcl_Interp *interp,
+TCLOOAPI Tcl_Object Tcl_CopyObjectInstance(Tcl_Interp *interp,
Tcl_Object sourceObject,
const char *targetName,
const char *targetNamespaceName);
/* 1 */
-EXTERN Tcl_Object Tcl_GetClassAsObject(Tcl_Class clazz);
+TCLOOAPI Tcl_Object Tcl_GetClassAsObject(Tcl_Class clazz);
/* 2 */
-EXTERN Tcl_Class Tcl_GetObjectAsClass(Tcl_Object object);
+TCLOOAPI Tcl_Class Tcl_GetObjectAsClass(Tcl_Object object);
/* 3 */
-EXTERN Tcl_Command Tcl_GetObjectCommand(Tcl_Object object);
+TCLOOAPI Tcl_Command Tcl_GetObjectCommand(Tcl_Object object);
/* 4 */
-EXTERN Tcl_Object Tcl_GetObjectFromObj(Tcl_Interp *interp,
+TCLOOAPI Tcl_Object Tcl_GetObjectFromObj(Tcl_Interp *interp,
Tcl_Obj *objPtr);
/* 5 */
-EXTERN Tcl_Namespace * Tcl_GetObjectNamespace(Tcl_Object object);
+TCLOOAPI Tcl_Namespace * Tcl_GetObjectNamespace(Tcl_Object object);
/* 6 */
-EXTERN Tcl_Class Tcl_MethodDeclarerClass(Tcl_Method method);
+TCLOOAPI Tcl_Class Tcl_MethodDeclarerClass(Tcl_Method method);
/* 7 */
-EXTERN Tcl_Object Tcl_MethodDeclarerObject(Tcl_Method method);
+TCLOOAPI Tcl_Object Tcl_MethodDeclarerObject(Tcl_Method method);
/* 8 */
-EXTERN int Tcl_MethodIsPublic(Tcl_Method method);
+TCLOOAPI int Tcl_MethodIsPublic(Tcl_Method method);
/* 9 */
-EXTERN int Tcl_MethodIsType(Tcl_Method method,
+TCLOOAPI int Tcl_MethodIsType(Tcl_Method method,
const Tcl_MethodType *typePtr,
ClientData *clientDataPtr);
/* 10 */
-EXTERN Tcl_Obj * Tcl_MethodName(Tcl_Method method);
+TCLOOAPI Tcl_Obj * Tcl_MethodName(Tcl_Method method);
/* 11 */
-EXTERN Tcl_Method Tcl_NewInstanceMethod(Tcl_Interp *interp,
+TCLOOAPI Tcl_Method Tcl_NewInstanceMethod(Tcl_Interp *interp,
Tcl_Object object, Tcl_Obj *nameObj,
int isPublic, const Tcl_MethodType *typePtr,
ClientData clientData);
/* 12 */
-EXTERN Tcl_Method Tcl_NewMethod(Tcl_Interp *interp, Tcl_Class cls,
+TCLOOAPI Tcl_Method Tcl_NewMethod(Tcl_Interp *interp, Tcl_Class cls,
Tcl_Obj *nameObj, int isPublic,
const Tcl_MethodType *typePtr,
ClientData clientData);
/* 13 */
-EXTERN Tcl_Object Tcl_NewObjectInstance(Tcl_Interp *interp,
+TCLOOAPI Tcl_Object Tcl_NewObjectInstance(Tcl_Interp *interp,
Tcl_Class cls, const char *nameStr,
const char *nsNameStr, int objc,
Tcl_Obj *const *objv, int skip);
/* 14 */
-EXTERN int Tcl_ObjectDeleted(Tcl_Object object);
+TCLOOAPI int Tcl_ObjectDeleted(Tcl_Object object);
/* 15 */
-EXTERN int Tcl_ObjectContextIsFiltering(
+TCLOOAPI int Tcl_ObjectContextIsFiltering(
Tcl_ObjectContext context);
/* 16 */
-EXTERN Tcl_Method Tcl_ObjectContextMethod(Tcl_ObjectContext context);
+TCLOOAPI Tcl_Method Tcl_ObjectContextMethod(Tcl_ObjectContext context);
/* 17 */
-EXTERN Tcl_Object Tcl_ObjectContextObject(Tcl_ObjectContext context);
+TCLOOAPI Tcl_Object Tcl_ObjectContextObject(Tcl_ObjectContext context);
/* 18 */
-EXTERN int Tcl_ObjectContextSkippedArgs(
+TCLOOAPI int Tcl_ObjectContextSkippedArgs(
Tcl_ObjectContext context);
/* 19 */
-EXTERN ClientData Tcl_ClassGetMetadata(Tcl_Class clazz,
+TCLOOAPI ClientData Tcl_ClassGetMetadata(Tcl_Class clazz,
const Tcl_ObjectMetadataType *typePtr);
/* 20 */
-EXTERN void Tcl_ClassSetMetadata(Tcl_Class clazz,
+TCLOOAPI void Tcl_ClassSetMetadata(Tcl_Class clazz,
const Tcl_ObjectMetadataType *typePtr,
ClientData metadata);
/* 21 */
-EXTERN ClientData Tcl_ObjectGetMetadata(Tcl_Object object,
+TCLOOAPI ClientData Tcl_ObjectGetMetadata(Tcl_Object object,
const Tcl_ObjectMetadataType *typePtr);
/* 22 */
-EXTERN void Tcl_ObjectSetMetadata(Tcl_Object object,
+TCLOOAPI void Tcl_ObjectSetMetadata(Tcl_Object object,
const Tcl_ObjectMetadataType *typePtr,
ClientData metadata);
/* 23 */
-EXTERN int Tcl_ObjectContextInvokeNext(Tcl_Interp *interp,
+TCLOOAPI int Tcl_ObjectContextInvokeNext(Tcl_Interp *interp,
Tcl_ObjectContext context, int objc,
Tcl_Obj *const *objv, int skip);
/* 24 */
-EXTERN Tcl_ObjectMapMethodNameProc * Tcl_ObjectGetMethodNameMapper(
+TCLOOAPI Tcl_ObjectMapMethodNameProc * Tcl_ObjectGetMethodNameMapper(
Tcl_Object object);
/* 25 */
-EXTERN void Tcl_ObjectSetMethodNameMapper(Tcl_Object object,
+TCLOOAPI void Tcl_ObjectSetMethodNameMapper(Tcl_Object object,
Tcl_ObjectMapMethodNameProc *mapMethodNameProc);
/* 26 */
-EXTERN void Tcl_ClassSetConstructor(Tcl_Interp *interp,
+TCLOOAPI void Tcl_ClassSetConstructor(Tcl_Interp *interp,
Tcl_Class clazz, Tcl_Method method);
/* 27 */
-EXTERN void Tcl_ClassSetDestructor(Tcl_Interp *interp,
+TCLOOAPI void Tcl_ClassSetDestructor(Tcl_Interp *interp,
Tcl_Class clazz, Tcl_Method method);
/* 28 */
-EXTERN Tcl_Obj * Tcl_GetObjectName(Tcl_Interp *interp,
+TCLOOAPI Tcl_Obj * Tcl_GetObjectName(Tcl_Interp *interp,
Tcl_Object object);
typedef struct TclOOStubHooks {
@@ -240,8 +215,4 @@ extern const TclOOStubs *tclOOStubsPtr;
#endif /* defined(USE_TCLOO_STUBS) */
/* !END!: Do not edit above this line. */
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
#endif /* _TCLOODECLS */
diff --git a/generic/tclOOIntDecls.h b/generic/tclOOIntDecls.h
index b9600f2..c751838 100644
--- a/generic/tclOOIntDecls.h
+++ b/generic/tclOOIntDecls.h
@@ -5,23 +5,6 @@
#ifndef _TCLOOINTDECLS
#define _TCLOOINTDECLS
-#undef TCL_STORAGE_CLASS
-#ifdef BUILD_tcl
-# define TCL_STORAGE_CLASS DLLEXPORT
-#else
-# ifdef USE_TCL_STUBS
-# define TCL_STORAGE_CLASS
-# else
-# define TCL_STORAGE_CLASS DLLIMPORT
-# endif
-#endif
-
-/*
- * WARNING: This file is automatically generated by the tools/genStubs.tcl
- * script. Any modifications to the function declarations below should be made
- * in the generic/tclOO.decls script.
- */
-
/* !BEGIN!: Do not edit below this line. */
/*
@@ -29,46 +12,46 @@
*/
/* 0 */
-EXTERN Tcl_Object TclOOGetDefineCmdContext(Tcl_Interp *interp);
+TCLOOAPI Tcl_Object TclOOGetDefineCmdContext(Tcl_Interp *interp);
/* 1 */
-EXTERN Tcl_Method TclOOMakeProcInstanceMethod(Tcl_Interp *interp,
+TCLOOAPI Tcl_Method TclOOMakeProcInstanceMethod(Tcl_Interp *interp,
Object *oPtr, int flags, Tcl_Obj *nameObj,
Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
const Tcl_MethodType *typePtr,
ClientData clientData, Proc **procPtrPtr);
/* 2 */
-EXTERN Tcl_Method TclOOMakeProcMethod(Tcl_Interp *interp,
+TCLOOAPI Tcl_Method TclOOMakeProcMethod(Tcl_Interp *interp,
Class *clsPtr, int flags, Tcl_Obj *nameObj,
const char *namePtr, Tcl_Obj *argsObj,
Tcl_Obj *bodyObj,
const Tcl_MethodType *typePtr,
ClientData clientData, Proc **procPtrPtr);
/* 3 */
-EXTERN Method * TclOONewProcInstanceMethod(Tcl_Interp *interp,
+TCLOOAPI Method * TclOONewProcInstanceMethod(Tcl_Interp *interp,
Object *oPtr, int flags, Tcl_Obj *nameObj,
Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
ProcedureMethod **pmPtrPtr);
/* 4 */
-EXTERN Method * TclOONewProcMethod(Tcl_Interp *interp, Class *clsPtr,
+TCLOOAPI Method * TclOONewProcMethod(Tcl_Interp *interp, Class *clsPtr,
int flags, Tcl_Obj *nameObj,
Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
ProcedureMethod **pmPtrPtr);
/* 5 */
-EXTERN int TclOOObjectCmdCore(Object *oPtr, Tcl_Interp *interp,
+TCLOOAPI int TclOOObjectCmdCore(Object *oPtr, Tcl_Interp *interp,
int objc, Tcl_Obj *const *objv,
int publicOnly, Class *startCls);
/* 6 */
-EXTERN int TclOOIsReachable(Class *targetPtr, Class *startPtr);
+TCLOOAPI int TclOOIsReachable(Class *targetPtr, Class *startPtr);
/* 7 */
-EXTERN Method * TclOONewForwardMethod(Tcl_Interp *interp,
+TCLOOAPI Method * TclOONewForwardMethod(Tcl_Interp *interp,
Class *clsPtr, int isPublic,
Tcl_Obj *nameObj, Tcl_Obj *prefixObj);
/* 8 */
-EXTERN Method * TclOONewForwardInstanceMethod(Tcl_Interp *interp,
+TCLOOAPI Method * TclOONewForwardInstanceMethod(Tcl_Interp *interp,
Object *oPtr, int isPublic, Tcl_Obj *nameObj,
Tcl_Obj *prefixObj);
/* 9 */
-EXTERN Tcl_Method TclOONewProcInstanceMethodEx(Tcl_Interp *interp,
+TCLOOAPI Tcl_Method TclOONewProcInstanceMethodEx(Tcl_Interp *interp,
Tcl_Object oPtr,
TclOO_PreCallProc *preCallPtr,
TclOO_PostCallProc *postCallPtr,
@@ -77,7 +60,7 @@ EXTERN Tcl_Method TclOONewProcInstanceMethodEx(Tcl_Interp *interp,
Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
int flags, void **internalTokenPtr);
/* 10 */
-EXTERN Tcl_Method TclOONewProcMethodEx(Tcl_Interp *interp,
+TCLOOAPI Tcl_Method TclOONewProcMethodEx(Tcl_Interp *interp,
Tcl_Class clsPtr,
TclOO_PreCallProc *preCallPtr,
TclOO_PostCallProc *postCallPtr,
@@ -86,22 +69,22 @@ EXTERN Tcl_Method TclOONewProcMethodEx(Tcl_Interp *interp,
Tcl_Obj *argsObj, Tcl_Obj *bodyObj,
int flags, void **internalTokenPtr);
/* 11 */
-EXTERN int TclOOInvokeObject(Tcl_Interp *interp,
+TCLOOAPI int TclOOInvokeObject(Tcl_Interp *interp,
Tcl_Object object, Tcl_Class startCls,
int publicPrivate, int objc,
Tcl_Obj *const *objv);
/* 12 */
-EXTERN void TclOOObjectSetFilters(Object *oPtr, int numFilters,
+TCLOOAPI void TclOOObjectSetFilters(Object *oPtr, int numFilters,
Tcl_Obj *const *filters);
/* 13 */
-EXTERN void TclOOClassSetFilters(Tcl_Interp *interp,
+TCLOOAPI void TclOOClassSetFilters(Tcl_Interp *interp,
Class *classPtr, int numFilters,
Tcl_Obj *const *filters);
/* 14 */
-EXTERN void TclOOObjectSetMixins(Object *oPtr, int numMixins,
+TCLOOAPI void TclOOObjectSetMixins(Object *oPtr, int numMixins,
Class *const *mixins);
/* 15 */
-EXTERN void TclOOClassSetMixins(Tcl_Interp *interp,
+TCLOOAPI void TclOOClassSetMixins(Tcl_Interp *interp,
Class *classPtr, int numMixins,
Class *const *mixins);
@@ -177,8 +160,4 @@ extern const TclOOIntStubs *tclOOIntStubsPtr;
#endif /* defined(USE_TCLOO_STUBS) */
/* !END!: Do not edit above this line. */
-
-#undef TCL_STORAGE_CLASS
-#define TCL_STORAGE_CLASS DLLIMPORT
-
#endif /* _TCLOOINTDECLS */