|
2 | 2 |
|
3 | 3 | #include "Python.h" |
4 | 4 |
|
5 | | -/* Convenience function to get builtins.iter or builtins.reversed */ |
6 | | -PyObject * |
7 | | -_PyIter_GetBuiltin(const char *iter) |
8 | | -{ |
9 | | - PyObject *mod, *attr; |
10 | | - mod = PyImport_ImportModule("builtins"); |
11 | | - if (mod == NULL) |
12 | | - return NULL; |
13 | | - attr = PyObject_GetAttrString(mod, iter); |
14 | | - Py_DECREF(mod); |
15 | | - return attr; |
16 | | -} |
17 | | - |
18 | 5 | typedef struct { |
19 | 6 | PyObject_HEAD |
20 | 7 | long it_index; |
@@ -105,10 +92,10 @@ static PyObject * |
105 | 92 | iter_reduce(seqiterobject *it) |
106 | 93 | { |
107 | 94 | if (it->it_seq != NULL) |
108 | | - return Py_BuildValue("N(O)n", _PyIter_GetBuiltin("iter"), |
| 95 | + return Py_BuildValue("N(O)n", _PyObject_GetBuiltin("iter"), |
109 | 96 | it->it_seq, it->it_index); |
110 | 97 | else |
111 | | - return Py_BuildValue("N(())", _PyIter_GetBuiltin("iter")); |
| 98 | + return Py_BuildValue("N(())", _PyObject_GetBuiltin("iter")); |
112 | 99 | } |
113 | 100 |
|
114 | 101 | PyDoc_STRVAR(reduce_doc, "Return state information for pickling."); |
@@ -242,10 +229,10 @@ static PyObject * |
242 | 229 | calliter_reduce(calliterobject *it) |
243 | 230 | { |
244 | 231 | if (it->it_callable != NULL && it->it_sentinel != NULL) |
245 | | - return Py_BuildValue("N(OO)", _PyIter_GetBuiltin("iter"), |
| 232 | + return Py_BuildValue("N(OO)", _PyObject_GetBuiltin("iter"), |
246 | 233 | it->it_callable, it->it_sentinel); |
247 | 234 | else |
248 | | - return Py_BuildValue("N(())", _PyIter_GetBuiltin("iter")); |
| 235 | + return Py_BuildValue("N(())", _PyObject_GetBuiltin("iter")); |
249 | 236 | } |
250 | 237 |
|
251 | 238 | static PyMethodDef calliter_methods[] = { |
|
0 commit comments