#define AC_R_PUBLIC 0004
#define AC_W_PUBLIC 0002
-extern typeobject Accesstype;
+extern DL_IMPORT typeobject Accesstype;
#define is_accessobject(v) ((v)->ob_type == &Accesstype)
object *cloneaccessobject PROTO((object *));
int hasaccessvalue PROTO((object *));
-extern typeobject Anynumbertype, Anysequencetype, Anymappingtype;
+extern DL_IMPORT typeobject Anynumbertype, Anysequencetype, Anymappingtype;
#ifdef __cplusplus
}
/* "allobjects.c" -- Source for precompiled header "allobjects.h" */
+/* Some systems (well, NT anyway!) require special declarations for
+ data items imported from dynamic modules. Note that this defn is
+ only turned on for the modules built as DL modules, not for python
+ itself.
+*/
+#define DL_IMPORT /* Save lots of #else/#if's */
+#ifdef USE_DL_IMPORT
+#ifdef NT
+#undef DL_IMPORT
+#define DL_IMPORT __declspec(dllimport)
+#endif /* NT */
+#endif /* USE_DL_IMPORT */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#endif
} instanceobject;
-extern typeobject Classtype, Instancetype, Instancemethodtype;
+extern DL_IMPORT typeobject Classtype, Instancetype, Instancemethodtype;
#define is_classobject(op) ((op)->ob_type == &Classtype)
#define is_instanceobject(op) ((op)->ob_type == &Instancetype)
object *co_name; /* string */
} codeobject;
-extern typeobject Codetype;
+extern DL_IMPORT typeobject Codetype;
#define is_codeobject(op) ((op)->ob_type == &Codetype)
/* Predefined exceptions */
-extern object *AccessError;
-extern object *AttributeError;
-extern object *ConflictError;
-extern object *EOFError;
-extern object *IOError;
-extern object *ImportError;
-extern object *IndexError;
-extern object *KeyError;
-extern object *KeyboardInterrupt;
-extern object *MemoryError;
-extern object *NameError;
-extern object *OverflowError;
-extern object *RuntimeError;
-extern object *SyntaxError;
-extern object *SystemError;
-extern object *SystemExit;
-extern object *TypeError;
-extern object *ValueError;
-extern object *ZeroDivisionError;
+extern DL_IMPORT object *AccessError;
+extern DL_IMPORT object *AttributeError;
+extern DL_IMPORT object *ConflictError;
+extern DL_IMPORT object *EOFError;
+extern DL_IMPORT object *IOError;
+extern DL_IMPORT object *ImportError;
+extern DL_IMPORT object *IndexError;
+extern DL_IMPORT object *KeyError;
+extern DL_IMPORT object *KeyboardInterrupt;
+extern DL_IMPORT object *MemoryError;
+extern DL_IMPORT object *NameError;
+extern DL_IMPORT object *OverflowError;
+extern DL_IMPORT object *RuntimeError;
+extern DL_IMPORT object *SyntaxError;
+extern DL_IMPORT object *SystemError;
+extern DL_IMPORT object *SystemExit;
+extern DL_IMPORT object *TypeError;
+extern DL_IMPORT object *ValueError;
+extern DL_IMPORT object *ZeroDivisionError;
/* Convenience functions */
/* File object interface */
-extern typeobject Filetype;
+extern DL_IMPORT typeobject Filetype;
#define is_fileobject(op) ((op)->ob_type == &Filetype)
double ob_fval;
} floatobject;
-extern typeobject Floattype;
+extern DL_IMPORT typeobject Floattype;
#define is_floatobject(op) ((op)->ob_type == &Floattype)
/* Standard object interface */
-extern typeobject Frametype;
+extern DL_IMPORT typeobject Frametype;
#define is_frameobject(op) ((op)->ob_type == &Frametype)
object *func_argdefs;
} funcobject;
-extern typeobject Functype;
+extern DL_IMPORT typeobject Functype;
#define is_funcobject(op) ((op)->ob_type == &Functype)
long ob_ival;
} intobject;
-extern typeobject Inttype;
+extern DL_IMPORT typeobject Inttype;
#define is_intobject(op) ((op)->ob_type == &Inttype)
Don't forget to apply INCREF() when returning True or False!!!
*/
-extern intobject FalseObject, TrueObject; /* Don't use these directly */
+extern DL_IMPORT intobject FalseObject, TrueObject; /* Don't use these directly */
#define False ((object *) &FalseObject)
#define True ((object *) &TrueObject)
object **ob_item;
} listobject;
-extern typeobject Listtype;
+extern DL_IMPORT typeobject Listtype;
#define is_listobject(op) ((op)->ob_type == &Listtype)
typedef struct _longobject longobject; /* Revealed in longintrepr.h */
-extern typeobject Longtype;
+extern DL_IMPORT typeobject Longtype;
#define is_longobject(op) ((op)->ob_type == &Longtype)
/* Mapping object type -- mapping from hashable object to object */
-extern typeobject Mappingtype;
+extern DL_IMPORT typeobject Mappingtype;
#define is_mappingobject(op) ((op)->ob_type == &Mappingtype)
/* Method object interface */
-extern typeobject Methodtype;
+extern DL_IMPORT typeobject Methodtype;
#define is_methodobject(op) ((op)->ob_type == &Methodtype)
/* Module object interface */
-extern typeobject Moduletype;
+extern DL_IMPORT typeobject Moduletype;
#define is_moduleobject(op) ((op)->ob_type == &Moduletype)
#endif
} typeobject;
-extern typeobject Typetype; /* The type of type objects */
+extern DL_IMPORT typeobject Typetype; /* The type of type objects */
#define is_typeobject(op) ((op)->ob_type == &Typetype)
Don't forget to apply INCREF() when returning this value!!!
*/
-extern object NoObject; /* Don't use this directly */
+extern DL_IMPORT object NoObject; /* Don't use this directly */
#define None (&NoObject)
/* Predefined exceptions */
-extern object *AccessError;
-extern object *AttributeError;
-extern object *ConflictError;
-extern object *EOFError;
-extern object *IOError;
-extern object *ImportError;
-extern object *IndexError;
-extern object *KeyError;
-extern object *KeyboardInterrupt;
-extern object *MemoryError;
-extern object *NameError;
-extern object *OverflowError;
-extern object *RuntimeError;
-extern object *SyntaxError;
-extern object *SystemError;
-extern object *SystemExit;
-extern object *TypeError;
-extern object *ValueError;
-extern object *ZeroDivisionError;
+extern DL_IMPORT object *AccessError;
+extern DL_IMPORT object *AttributeError;
+extern DL_IMPORT object *ConflictError;
+extern DL_IMPORT object *EOFError;
+extern DL_IMPORT object *IOError;
+extern DL_IMPORT object *ImportError;
+extern DL_IMPORT object *IndexError;
+extern DL_IMPORT object *KeyError;
+extern DL_IMPORT object *KeyboardInterrupt;
+extern DL_IMPORT object *MemoryError;
+extern DL_IMPORT object *NameError;
+extern DL_IMPORT object *OverflowError;
+extern DL_IMPORT object *RuntimeError;
+extern DL_IMPORT object *SyntaxError;
+extern DL_IMPORT object *SystemError;
+extern DL_IMPORT object *SystemExit;
+extern DL_IMPORT object *TypeError;
+extern DL_IMPORT object *ValueError;
+extern DL_IMPORT object *ZeroDivisionError;
/* Convenience functions */
they are represented by a start, stop, and step datamembers.
*/
-extern typeobject Rangetype;
+extern DL_IMPORT typeobject Rangetype;
#define is_rangeobject(op) ((op)->ob_type == &Rangetype)
char ob_sval[1];
} stringobject;
-extern typeobject Stringtype;
+extern DL_IMPORT typeobject Stringtype;
#define is_stringobject(op) ((op)->ob_type == &Stringtype)
FILE *sysgetfile PROTO((char *, FILE *));
void initsys PROTO((void));
-extern object *sys_trace, *sys_profile;
+extern DL_IMPORT object *sys_trace, *sys_profile;
#ifdef __cplusplus
}
object *ob_item[1];
} tupleobject;
-extern typeobject Tupletype;
+extern DL_IMPORT typeobject Tupletype;
#define is_tupleobject(op) ((op)->ob_type == &Tupletype)