[Python-checkins] cpython (merge 3.6 -> default): Merge 3.6 (issue #28544)

yury.selivanov python-checkins at python.org
Fri Oct 28 19:01:50 EDT 2016


https://hg.python.org/cpython/rev/60b6e820abe5
changeset: 104785:60b6e820abe5
parent: 104783:9d95510dc203
parent: 104784:db7bcd92cf85
user: Yury Selivanov <yury at magic.io>
date: Fri Oct 28 19:01:46 2016 -0400
summary:
 Merge 3.6 (issue #28544)
files:
 Include/dictobject.h | 2 +-
 Modules/_asynciomodule.c | 10 +++++-----
 Objects/dictobject.c | 8 ++++++--
 3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/Include/dictobject.h b/Include/dictobject.h
--- a/Include/dictobject.h
+++ b/Include/dictobject.h
@@ -112,7 +112,7 @@
 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
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -21,7 +21,7 @@
 
 /* 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 @@
 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 @@
 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 @@
 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
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -1769,13 +1769,17 @@
 
 /* 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) {
@@ -2837,7 +2841,7 @@
 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 *
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /