summaryrefslogtreecommitdiffstats
path: root/Python/compile.c
diff options
context:
space:
mode:
authorGustavo Niemeyer <gustavo@niemeyer.net>2002-12-16 13:54:02 (GMT)
committerGustavo Niemeyer <gustavo@niemeyer.net>2002-12-16 13:54:02 (GMT)
commit78429a6aa6bb4f8527f0c6be678555ef26b62d19 (patch)
treee733c09ec2db70d79822c60895286ffacd97e003 /Python/compile.c
parentc389ec8d55efe0a812906ec68cf5c690290b3428 (diff)
downloadcpython-78429a6aa6bb4f8527f0c6be678555ef26b62d19.zip
cpython-78429a6aa6bb4f8527f0c6be678555ef26b62d19.tar.gz
cpython-78429a6aa6bb4f8527f0c6be678555ef26b62d19.tar.bz2
Fixing bug
[#448679] Left to right * Python/compile.c (com_dictmaker): Reordered evaluation of dictionaries to follow strict LTR evaluation. * Lib/compiler/pycodegen.py (CodeGenerator.visitDict): Reordered evaluation of dictionaries to follow strict LTR evaluation. * Doc/ref/ref5.tex Documented the general LTR evaluation order idea. * Misc/NEWS Documented change in evaluation order of dictionaries.
Diffstat (limited to 'Python/compile.c')
-rw-r--r--Python/compile.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/compile.c b/Python/compile.c
index b438ce4..1755521 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1529,9 +1529,9 @@ com_dictmaker(struct compiling *c, node *n)
It wants the stack to look like (value) (dict) (key) */
com_addbyte(c, DUP_TOP);
com_push(c, 1);
- com_node(c, CHILD(n, i+2)); /* value */
- com_addbyte(c, ROT_TWO);
com_node(c, CHILD(n, i)); /* key */
+ com_node(c, CHILD(n, i+2)); /* value */
+ com_addbyte(c, ROT_THREE);
com_addbyte(c, STORE_SUBSCR);
com_pop(c, 3);
}