Mercurial > cpython-lru_cache-weakref
annotate Include/objimpl.h @ 3930:52c19ee83a6b legacy-trunk
Guido's 1.4b2 fixes: Py_GetProgramName, Py_GetPrefix and Py_GetExecPrefix.
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Fri, 02 Aug 1996 15:16:16 +0000 |
| parents | 29fe6a0de366 |
| children | 65d2d8e67da3 |
| rev | line source |
|---|---|
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
1 #ifndef Py_OBJIMPL_H |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
2 #define Py_OBJIMPL_H |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
3 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
4 extern "C" { |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
5 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
6 |
| 145 | 7 /*********************************************************** |
| 2058 | 8 Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, |
| 9 The Netherlands. | |
| 145 | 10 |
| 11 All Rights Reserved | |
| 12 | |
| 13 Permission to use, copy, modify, and distribute this software and its | |
| 14 documentation for any purpose and without fee is hereby granted, | |
| 15 provided that the above copyright notice appear in all copies and that | |
| 16 both that copyright notice and this permission notice appear in | |
| 17 supporting documentation, and that the names of Stichting Mathematisch | |
| 18 Centrum or CWI not be used in advertising or publicity pertaining to | |
| 19 distribution of the software without specific, written prior permission. | |
| 20 | |
| 21 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO | |
| 22 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND | |
| 23 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE | |
| 24 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
| 25 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
| 26 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT | |
| 27 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
| 28 | |
| 29 ******************************************************************/ | |
| 30 | |
| 6 | 31 /* |
| 32 123456789-123456789-123456789-123456789-123456789-123456789-123456789-12 | |
| 33 | |
| 34 Additional macros for modules that implement new object types. | |
| 35 You must first include "object.h". | |
| 36 | |
|
2129
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
37 PyObject_NEW(type, typeobj) allocates memory for a new object of the given |
| 6 | 38 type; here 'type' must be the C structure type used to represent the |
| 39 object and 'typeobj' the address of the corresponding type object. | |
| 40 Reference count and type pointer are filled in; the rest of the bytes of | |
| 41 the object are *undefined*! The resulting expression type is 'type *'. | |
| 42 The size of the object is actually determined by the tp_basicsize field | |
| 43 of the type object. | |
| 44 | |
|
2129
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
45 PyObject_NEW_VAR(type, typeobj, n) is similar but allocates a variable-size |
|
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
46 object with n extra items. The size is computed as tp_basicsize plus |
| 6 | 47 n * tp_itemsize. This fills in the ob_size field as well. |
| 48 */ | |
| 49 | |
| 3764 | 50 #ifndef MS_COREDLL |
|
2129
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
51 extern PyObject *_PyObject_New Py_PROTO((PyTypeObject *)); |
|
2305
65a68c51e9f2
make newvarobj's size arg signed
Guido van Rossum <guido@python.org>
parents:
2129
diff
changeset
|
52 extern varobject *_PyObject_NewVar Py_PROTO((PyTypeObject *, int)); |
| 6 | 53 |
|
2129
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
54 #define PyObject_NEW(type, typeobj) ((type *) _PyObject_New(typeobj)) |
|
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2058
diff
changeset
|
55 #define PyObject_NEW_VAR(type, typeobj, n) ((type *) _PyObject_NewVar(typeobj, n)) |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
56 |
| 3764 | 57 #else |
| 58 /* For an MS-Windows DLL, we change the way an object is created, so that the | |
| 59 extension module's malloc is used, rather than the core DLL malloc, as there is | |
| 60 no guarantee they will use the same heap | |
| 61 */ | |
| 62 extern PyObject *_PyObject_New Py_PROTO((PyTypeObject *, PyObject *)); | |
| 63 extern varobject *_PyObject_NewVar Py_PROTO((PyTypeObject *, int, varobject *)); | |
| 64 | |
| 65 #define PyObject_NEW(type, typeobj) ((type *) _PyObject_New(typeobj,(PyObject *)malloc((typeobj)->tp_basicsize))) | |
| 66 #define PyObject_NEW_VAR(type, typeobj, n) ((type *) _PyObject_NewVar(typeobj, n, (varobject *)malloc((typeobj)->tp_basicsize + n * (typeobj)->tp_itemsize))) | |
| 67 | |
| 68 #endif /* MS_COREDLL */ | |
| 69 | |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
70 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
71 } |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
72 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1257
diff
changeset
|
73 #endif /* !Py_OBJIMPL_H */ |
