mirror of
https://github.com/python/cpython.git
synced 2025-10-17 20:28:43 +00:00
Hacks for MS_COREDLL
This commit is contained in:
parent
bb864062f1
commit
5a84914803
1 changed files with 14 additions and 0 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue