@@ -1159,6 +1159,11 @@ lru_cache_new(PyTypeObject *type, PyObject *args, PyObject *kw)
|
1159 | 1159 | return NULL; |
1160 | 1160 | } |
1161 | 1161 | |
| 1162 | +state = get_functools_state_by_type(type); |
| 1163 | +if (state == NULL) { |
| 1164 | +return NULL; |
| 1165 | + } |
| 1166 | + |
1162 | 1167 | /* select the caching function, and make/inc maxsize_O */ |
1163 | 1168 | if (maxsize_O == Py_None) { |
1164 | 1169 | wrapper = infinite_lru_cache_wrapper; |
@@ -1189,13 +1194,6 @@ lru_cache_new(PyTypeObject *type, PyObject *args, PyObject *kw)
|
1189 | 1194 | return NULL; |
1190 | 1195 | } |
1191 | 1196 | |
1192 | | -state = get_functools_state_by_type(Py_TYPE(obj)); |
1193 | | -if (state == NULL) { |
1194 | | -Py_DECREF(cachedict); |
1195 | | -Py_DECREF(obj); |
1196 | | -return NULL; |
1197 | | - } |
1198 | | - |
1199 | 1197 | obj->root.prev = &obj->root; |
1200 | 1198 | obj->root.next = &obj->root; |
1201 | 1199 | obj->wrapper = wrapper; |
|