From: Amaury Forgeot d'Arc Date: Tue, 5 Feb 2008 00:26:21 +0000 (+0000) Subject: Change r60575 broke test_compile: X-Git-Tag: v2.6a1~272 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=99af7dbc07a8c7e52c081d2b9398ce61cf40215a;p=thirdparty%2FPython%2Fcpython.git Change r60575 broke test_compile: there is no need to emit co_lnotab item when both offsets are zeros. --- diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py index 7f7db334ed06..6ad38d103ad9 100644 --- a/Lib/test/test_trace.py +++ b/Lib/test/test_trace.py @@ -366,6 +366,15 @@ class TraceTestCase(unittest.TestCase): (3, 'line'), (3, 'return')]) + def test_16_blank_lines(self): + exec("def f():\n" + "\n" * 256 + " pass") + self.run_and_compare( + f, + [(0, 'call'), + (257, 'line'), + (257, 'return')]) + + class RaisingTraceFuncTestCase(unittest.TestCase): def trace(self, frame, event, arg): """A trace function that raises an exception in response to a diff --git a/Python/compile.c b/Python/compile.c index f9b5ac4a523c..83a8fc07cee2 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -3560,6 +3560,9 @@ assemble_lnotab(struct assembler *a, struct instr *i) assert(d_bytecode >= 0); assert(d_lineno >= 0); + if(d_bytecode == 0 && d_lineno == 0) + return 1; + if (d_bytecode > 255) { int j, nbytes, ncodes = d_bytecode / 255; nbytes = a->a_lnotab_off + 2 * ncodes;