parent
875dde4387
commit
9f78939552
|
@ -22,7 +22,7 @@ look like:
|
|||
0, 1, 6, 1, 44, 5, 300, 200, 11, 1
|
||||
|
||||
The above doesn't really work, but it's a start. An unsigned byte (byte code
|
||||
offset)) can't hold negative values, or values larger than 255, a signed byte
|
||||
offset) can't hold negative values, or values larger than 255, a signed byte
|
||||
(line number) can't hold values larger than 127 or less than -128, and the
|
||||
above example contains two such values. So we make two tweaks:
|
||||
|
||||
|
@ -95,16 +95,16 @@ which compiles to this:
|
|||
6 POP_JUMP_IF_FALSE 17
|
||||
|
||||
3 9 LOAD_CONST 1 (1)
|
||||
12 PRINT_ITEM
|
||||
12 PRINT_ITEM
|
||||
|
||||
4 13 BREAK_LOOP
|
||||
4 13 BREAK_LOOP
|
||||
14 JUMP_ABSOLUTE 3
|
||||
>> 17 POP_BLOCK
|
||||
>> 17 POP_BLOCK
|
||||
|
||||
6 18 LOAD_CONST 2 (2)
|
||||
21 PRINT_ITEM
|
||||
21 PRINT_ITEM
|
||||
>> 22 LOAD_CONST 0 (None)
|
||||
25 RETURN_VALUE
|
||||
25 RETURN_VALUE
|
||||
|
||||
If 'a' is false, execution will jump to the POP_BLOCK instruction at offset 17
|
||||
and the co_lnotab will claim that execution has moved to line 4, which is wrong.
|
||||
|
|
Loading…
Reference in New Issue