Kaydet (Commit) 5a849148 authored tarafından Guido van Rossum's avatar Guido van Rossum

Hacks for MS_COREDLL

üst bb864062
...@@ -47,12 +47,26 @@ object with n extra items. The size is computed as tp_basicsize plus ...@@ -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. n * tp_itemsize. This fills in the ob_size field as well.
*/ */
#ifndef MS_COREDLL
extern PyObject *_PyObject_New Py_PROTO((PyTypeObject *)); extern PyObject *_PyObject_New Py_PROTO((PyTypeObject *));
extern varobject *_PyObject_NewVar Py_PROTO((PyTypeObject *, int)); extern varobject *_PyObject_NewVar Py_PROTO((PyTypeObject *, int));
#define PyObject_NEW(type, typeobj) ((type *) _PyObject_New(typeobj)) #define PyObject_NEW(type, typeobj) ((type *) _PyObject_New(typeobj))
#define PyObject_NEW_VAR(type, typeobj, n) ((type *) _PyObject_NewVar(typeobj, n)) #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 #ifdef __cplusplus
} }
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment