Mercurial > cpython-lru_cache-weakref
annotate Include/boolobject.h @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | 86a2679dca46 |
| children |
| rev | line source |
|---|---|
|
22787
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 /* Boolean object interface */ |
|
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 |
|
22861
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
3 #ifndef Py_BOOLOBJECT_H |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
4 #define Py_BOOLOBJECT_H |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
5 #ifdef __cplusplus |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
6 extern "C" { |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
7 #endif |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
8 |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
9 |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
23364
diff
changeset
|
10 PyAPI_DATA(PyTypeObject) PyBool_Type; |
|
22787
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 |
|
44351
86a2679dca46
#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT.
Christian Heimes <christian@cheimes.de>
parents:
42334
diff
changeset
|
12 #define PyBool_Check(x) (Py_TYPE(x) == &PyBool_Type) |
|
22787
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 |
|
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 /* Py_False and Py_True are the only two bools in existence. |
|
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 Don't forget to apply Py_INCREF() when returning either!!! */ |
|
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 |
|
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 /* Don't use these directly */ |
|
40626
4aee3f672f77
Merged the int/long unification branch, by very crude means (sorry Thomas!).
Guido van Rossum <guido@python.org>
parents:
32793
diff
changeset
|
18 PyAPI_DATA(struct _longobject) _Py_FalseStruct, _Py_TrueStruct; |
|
22787
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 |
|
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 /* Use these macros */ |
|
40626
4aee3f672f77
Merged the int/long unification branch, by very crude means (sorry Thomas!).
Guido van Rossum <guido@python.org>
parents:
32793
diff
changeset
|
21 #define Py_False ((PyObject *) &_Py_FalseStruct) |
|
22787
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 #define Py_True ((PyObject *) &_Py_TrueStruct) |
|
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 |
|
30719
7dfdf9e8d95d
Defined macros Py_RETURN_(TRUE|FALSE|NONE) as helper functions for returning
Brett Cannon <bcannon@gmail.com>
parents:
24752
diff
changeset
|
24 /* Macros for returning Py_True or Py_False, respectively */ |
|
32793
1e2187f50631
SF bug 994255: Py_RETURN_NONE causes too much warnings
Tim Peters <tim.peters@gmail.com>
parents:
30721
diff
changeset
|
25 #define Py_RETURN_TRUE return Py_INCREF(Py_True), Py_True |
|
1e2187f50631
SF bug 994255: Py_RETURN_NONE causes too much warnings
Tim Peters <tim.peters@gmail.com>
parents:
30721
diff
changeset
|
26 #define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False |
|
30719
7dfdf9e8d95d
Defined macros Py_RETURN_(TRUE|FALSE|NONE) as helper functions for returning
Brett Cannon <bcannon@gmail.com>
parents:
24752
diff
changeset
|
27 |
|
22787
028ebc8fb390
Oops. Here are the new files. My apologies.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 /* Function to return a bool from a C long */ |
|
24752
c1eb668525e1
Excise DL_EXPORT from Include.
Mark Hammond <mhammond@skippinet.com.au>
parents:
23364
diff
changeset
|
29 PyAPI_FUNC(PyObject *) PyBool_FromLong(long); |
|
22861
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
30 |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
31 #ifdef __cplusplus |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
32 } |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
33 #endif |
|
a6527d1ee474
Add standard header preamble and footer, a-la intobject.h. Main purpose is extern "C" for C++ programs.
Mark Hammond <mhammond@skippinet.com.au>
parents:
22787
diff
changeset
|
34 #endif /* !Py_BOOLOBJECT_H */ |
