diff options
-rw-r--r-- | Include/dictobject.h | 2 | ||||
-rw-r--r-- | Modules/_asynciomodule.c | 10 | ||||
-rw-r--r-- | Objects/dictobject.c | 8 |
3 files changed, 12 insertions, 8 deletions
diff --git a/Include/dictobject.h b/Include/dictobject.h index 5cf6db1..30f114e 100644 --- a/Include/dictobject.h +++ b/Include/dictobject.h @@ -112,7 +112,7 @@ PyAPI_FUNC(void) _PyDict_MaybeUntrack(PyObject *mp); PyAPI_FUNC(int) _PyDict_HasOnlyStringKeys(PyObject *mp); Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys); Py_ssize_t _PyDict_SizeOf(PyDictObject *); -PyAPI_FUNC(PyObject *) _PyDict_Pop(PyDictObject *, PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) _PyDict_Pop(PyObject *, PyObject *, PyObject *); PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *); #define _PyDict_HasSplitTable(d) ((d)->ma_values != NULL) diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c index f606923..6278b25 100644 --- a/Modules/_asynciomodule.c +++ b/Modules/_asynciomodule.c @@ -21,7 +21,7 @@ _Py_IDENTIFIER(_wakeup); /* State of the _asyncio module */ static PyObject *all_tasks; -static PyDictObject *current_tasks; +static PyObject *current_tasks; static PyObject *traceback_extract_stack; static PyObject *asyncio_get_event_loop; static PyObject *asyncio_future_repr_info_func; @@ -1429,11 +1429,11 @@ _asyncio_Task_current_task_impl(PyTypeObject *type, PyObject *loop) return NULL; } - res = PyDict_GetItem((PyObject*)current_tasks, loop); + res = PyDict_GetItem(current_tasks, loop); Py_DECREF(loop); } else { - res = PyDict_GetItem((PyObject*)current_tasks, loop); + res = PyDict_GetItem(current_tasks, loop); } if (res == NULL) { @@ -2235,7 +2235,7 @@ task_step(TaskObj *task, PyObject *exc) PyObject *res; PyObject *ot; - if (PyDict_SetItem((PyObject *)current_tasks, + if (PyDict_SetItem(current_tasks, task->task_loop, (PyObject*)task) == -1) { return NULL; @@ -2385,7 +2385,7 @@ module_init(void) goto fail; } - current_tasks = (PyDictObject *)PyDict_New(); + current_tasks = PyDict_New(); if (current_tasks == NULL) { goto fail; } diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 9f98f68..62ca484 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -1768,13 +1768,17 @@ PyDict_Next(PyObject *op, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue) /* Internal version of dict.pop(). */ PyObject * -_PyDict_Pop(PyDictObject *mp, PyObject *key, PyObject *deflt) +_PyDict_Pop(PyObject *dict, PyObject *key, PyObject *deflt) { Py_hash_t hash; Py_ssize_t ix, hashpos; PyObject *old_value, *old_key; PyDictKeyEntry *ep; PyObject **value_addr; + PyDictObject *mp; + + assert(PyDict_Check(dict)); + mp = (PyDictObject *)dict; if (mp->ma_used == 0) { if (deflt) { @@ -2836,7 +2840,7 @@ dict_pop(PyDictObject *mp, PyObject *args) if(!PyArg_UnpackTuple(args, "pop", 1, 2, &key, &deflt)) return NULL; - return _PyDict_Pop(mp, key, deflt); + return _PyDict_Pop((PyObject*)mp, key, deflt); } static PyObject * |