From 7ffaff41f43e676e13eee0776047945984324592 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sun, 28 Jan 2018 00:20:30 -0800 Subject: [PATCH 1/2] Preserve order of locals() --- Objects/frameobject.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Objects/frameobject.c b/Objects/frameobject.c index 1ac3d752575268..3083e5b6445c29 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -791,7 +791,7 @@ map_to_dict(PyObject *map, Py_ssize_t nmap, PyObject *dict, PyObject **values, assert(PyTuple_Check(map)); assert(PyDict_Check(dict)); assert(PyTuple_Size(map) >= nmap); - for (j = nmap; --j >= 0; ) { + for (j=0; j < nmap; j++) { PyObject *key = PyTuple_GET_ITEM(map, j); PyObject *value = values[j]; assert(PyUnicode_Check(key)); @@ -844,7 +844,7 @@ dict_to_map(PyObject *map, Py_ssize_t nmap, PyObject *dict, PyObject **values, assert(PyTuple_Check(map)); assert(PyDict_Check(dict)); assert(PyTuple_Size(map) >= nmap); - for (j = nmap; --j >= 0; ) { + for (j=0; j < nmap; j++) { PyObject *key = PyTuple_GET_ITEM(map, j); PyObject *value = PyObject_GetItem(dict, key); assert(PyUnicode_Check(key)); From e73e4bb8708361792bad1426bb2dbd0c6b08a39a Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sun, 28 Jan 2018 09:26:29 -0800 Subject: [PATCH 2/2] Add news entry --- .../Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst b/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst new file mode 100644 index 00000000000000..1663b96cb927fc --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2018-01-28-09-26-07.bpo-32690.8i9g5P.rst @@ -0,0 +1,2 @@ +The locals() dictionary now displays in the lexical order that variables +were defined. Previously, the order was reversed.