Mercurial > cpython-lru_cache-weakref
diff Python/compile.c @ 25078:be2868a63ed5 legacy-trunk
Further SET_LINENO reomval fixes. See comments in patch #587933.
Use a slightly different strategy to determine when not to call the line
trace function. This removes the need for the RETURN_NONE opcode, so
that's gone again. Update docs and comments to match.
Thanks to Neal and Armin!
Also add a test suite. This should have come with the original patch...
| author | Michael W. Hudson <mwh@python.net> |
|---|---|
| date | Fri, 30 Aug 2002 13:09:51 +0000 |
| parents | 592406e0c9b0 |
| children | 2c0e0f0dca6f |
line wrap: on
line diff
--- a/Python/compile.c Fri Aug 30 12:56:08 2002 +0000 +++ b/Python/compile.c Fri Aug 30 13:09:51 2002 +0000 @@ -4014,7 +4014,10 @@ c->c_infunction = 1; com_node(c, CHILD(n, 4)); c->c_infunction = 0; - com_addbyte(c, RETURN_NONE); + com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None)); + com_push(c, 1); + com_addbyte(c, RETURN_VALUE); + com_pop(c, 1); } static void @@ -4081,13 +4084,19 @@ n = CHILD(n, 0); if (TYPE(n) != NEWLINE) com_node(c, n); - com_addbyte(c, RETURN_NONE); + com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None)); + com_push(c, 1); + com_addbyte(c, RETURN_VALUE); + com_pop(c, 1); c->c_interactive--; break; case file_input: /* A whole file, or built-in function exec() */ com_file_input(c, n); - com_addbyte(c, RETURN_NONE); + com_addoparg(c, LOAD_CONST, com_addconst(c, Py_None)); + com_push(c, 1); + com_addbyte(c, RETURN_VALUE); + com_pop(c, 1); break; case eval_input: /* Built-in function input() */
