Mercurial > cpython-lru_cache-weakref
annotate Include/classobject.h @ 60008:0dfd62076ded
Blocked revisions 79402,79406 via svnmerge
........
r79402 | benjamin.peterson | 2010-03-24 20:03:51 -0500 (Wed, 24 Mar 2010) | 1 line
set bsddb eol style
........
r79406 | benjamin.peterson | 2010-03-24 20:05:57 -0500 (Wed, 24 Mar 2010) | 1 line
fix eol properties on capsule files
........
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Thu, 25 Mar 2010 01:11:10 +0000 |
| parents | 7c4c46342137 |
| children | 62b61abd02b8 |
| rev | line source |
|---|---|
|
44026
48af6375207e
Removed the API to create unbound methods and simplified the API for bound methods. The signature is PyMethod_New(func, instance).
Christian Heimes <christian@cheimes.de>
parents:
39536
diff
changeset
|
1 /* Former class object interface -- now only bound methods are here */ |
| 6 | 2 |
|
1290
7971fecbf28e
* Lots of small changes related to access.
Guido van Rossum <guido@python.org>
parents:
1289
diff
changeset
|
3 /* Revealing some structures (not for general use) */ |
| 6 | 4 |
|
13444
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
5 #ifndef Py_CLASSOBJECT_H |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
6 #define Py_CLASSOBJECT_H |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
7 #ifdef __cplusplus |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
8 extern "C" { |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
9 #endif |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
10 |
|
1289
4d292c7857d4
Access checks now work, at least for instance data (not for methods
Guido van Rossum <guido@python.org>
parents:
1288
diff
changeset
|
11 typedef struct { |
|
13444
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
12 PyObject_HEAD |
|
5709ddba423c
ANSI-fication and Py_PROTO extermination.
Fred Drake <fdrake@acm.org>
parents:
13256
diff
changeset
|
13 PyObject *im_func; /* The callable object implementing the method */ |
|
44026
48af6375207e
Removed the API to create unbound methods and simplified the API for bound methods. The signature is PyMethod_New(func, instance).
Christian Heimes <christian@cheimes.de>
parents:
39536
diff
changeset
|
14 PyObject *im_self; /* The instance it is bound to */ |
|
17169
d807488dfc7a
Add the necessary field for weak reference support to the function and
Fred Drake <fdrake@acm.org>
parents:
16385
diff
changeset
|
15 PyObject *im_weakreflist; /* List of weak references */ |
|
8657
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
16 } PyMethodObject; |
|
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
17 |
|
39536
8f5b9982beba
Completely get rid of PyClass and PyInstance.
Guido van Rossum <guido@python.org>
parents:
28527
diff
changeset
|
18 PyAPI_DATA(PyTypeObject) PyMethod_Type; |
| 6 | 19 |
|
2129
05360cd616ae
The great renaming, phase two: all header files have been updated to
Guido van Rossum <guido@python.org>
parents:
2074
diff
changeset
|
20 #define PyMethod_Check(op) ((op)->ob_type == &PyMethod_Type) |
| 6 | 21 |
|
44026
48af6375207e
Removed the API to create unbound methods and simplified the API for bound methods. The signature is PyMethod_New(func, instance).
Christian Heimes <christian@cheimes.de>
parents:
39536
diff
changeset
|
22 PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *); |
| 6 | 23 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
21300
diff
changeset
|
24 PyAPI_FUNC(PyObject *) PyMethod_Function(PyObject *); |
|
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
21300
diff
changeset
|
25 PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *); |
|
19751
3d76dfc34c57
Add PyMethod_Function(), PyMethod_Self(), PyMethod_Class() back.
Guido van Rossum <guido@python.org>
parents:
18933
diff
changeset
|
26 |
|
8657
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
27 /* Macros for direct access to these values. Type checks are *not* |
|
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
28 done, so use with care. */ |
|
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
29 #define PyMethod_GET_FUNCTION(meth) \ |
|
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
30 (((PyMethodObject *)meth) -> im_func) |
|
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
31 #define PyMethod_GET_SELF(meth) \ |
|
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
32 (((PyMethodObject *)meth) -> im_self) |
|
ac43e2246695
Move the definition of PyMethodObject to classobject.h, so it can define
Guido van Rossum <guido@python.org>
parents:
5195
diff
changeset
|
33 |
|
45371
7c4c46342137
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60845 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
44272
diff
changeset
|
34 PyAPI_FUNC(int) PyMethod_ClearFreeList(void); |
|
44272
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
35 |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
36 typedef struct { |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
37 PyObject_HEAD |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
38 PyObject *func; |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
39 } PyInstanceMethodObject; |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
40 |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
41 PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type; |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
42 |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
43 #define PyInstanceMethod_Check(op) ((op)->ob_type == &PyInstanceMethod_Type) |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
44 |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
45 PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *); |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
46 PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
47 |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
48 /* Macros for direct access to these values. Type checks are *not* |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
49 done, so use with care. */ |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
50 #define PyInstanceMethod_GET_FUNCTION(meth) \ |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
51 (((PyInstanceMethodObject *)meth) -> func) |
|
3e0867a07765
Issue #1587: Added instancemethod wrapper for PyCFunctions. The Python C API
Christian Heimes <christian@cheimes.de>
parents:
44079
diff
changeset
|
52 |
|
1329
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1290
diff
changeset
|
53 #ifdef __cplusplus |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1290
diff
changeset
|
54 } |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1290
diff
changeset
|
55 #endif |
|
519c25039c6a
* Added support for X11 modules.
Guido van Rossum <guido@python.org>
parents:
1290
diff
changeset
|
56 #endif /* !Py_CLASSOBJECT_H */ |
