Hacks for MS_COREDLL

This commit is contained in:
Guido van Rossum 1996-07-21 02:23:54 +00:00
parent bb864062f1
commit 5a84914803

View file

@ -47,12 +47,26 @@ object with n extra items. The size is computed as tp_basicsize plus
n * tp_itemsize. This fills in the ob_size field as well.
*/
#ifndef MS_COREDLL
extern PyObject *_PyObject_New Py_PROTO((PyTypeObject *));
extern varobject *_PyObject_NewVar Py_PROTO((PyTypeObject *, int));
#define PyObject_NEW(type, typeobj) ((type *) _PyObject_New(typeobj))
#define PyObject_NEW_VAR(type, typeobj, n) ((type *) _PyObject_NewVar(typeobj, n))
#else
/* For an MS-Windows DLL, we change the way an object is created, so that the
extension module's malloc is used, rather than the core DLL malloc, as there is
no guarantee they will use the same heap
*/
extern PyObject *_PyObject_New Py_PROTO((PyTypeObject *, PyObject *));
extern varobject *_PyObject_NewVar Py_PROTO((PyTypeObject *, int, varobject *));
#define PyObject_NEW(type, typeobj) ((type *) _PyObject_New(typeobj,(PyObject *)malloc((typeobj)->tp_basicsize)))
#define PyObject_NEW_VAR(type, typeobj, n) ((type *) _PyObject_NewVar(typeobj, n, (varobject *)malloc((typeobj)->tp_basicsize + n * (typeobj)->tp_itemsize)))
#endif /* MS_COREDLL */
#ifdef __cplusplus
}
#endif