static PyObject * lru_cache_cache_clear(lru_cache_object *self, PyObject *unused) { lru_list_elem *list = lru_cache_unlink_list(self); self->hits = self->misses = 0; self->full = 0; PyDict_Clear(self->cache); lru_cache_clear_list(list); Py_RETURN_NONE; }
static int lru_cache_tp_clear(lru_cache_object *self) { lru_list_elem *list = lru_cache_unlink_list(self); Py_CLEAR(self->maxsize_O); Py_CLEAR(self->func); Py_CLEAR(self->cache); Py_CLEAR(self->cache_info_type); Py_CLEAR(self->dict); lru_cache_clear_list(list); return 0; }
static void lru_cache_dealloc(lru_cache_object *obj) { lru_list_elem *list = lru_cache_unlink_list(obj); Py_XDECREF(obj->maxsize_O); Py_XDECREF(obj->func); Py_XDECREF(obj->cache); Py_XDECREF(obj->dict); Py_XDECREF(obj->cache_info_type); lru_cache_clear_list(list); Py_TYPE(obj)->tp_free(obj); }
static void lru_cache_dealloc(lru_cache_object *obj) { lru_list_elem *list; /* bpo-31095: UnTrack is needed before calling any callbacks */ PyObject_GC_UnTrack(obj); list = lru_cache_unlink_list(obj); Py_XDECREF(obj->maxsize_O); Py_XDECREF(obj->func); Py_XDECREF(obj->cache); Py_XDECREF(obj->dict); Py_XDECREF(obj->cache_info_type); lru_cache_clear_list(list); Py_TYPE(obj)->tp_free(obj); }