File tree 1 file changed +8
-4
lines changed
1 file changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -1042,12 +1042,16 @@ mp_vm_return_kind_t mp_execute_bytecode2(mp_code_state *code_state, volatile mp_
1042
1042
machine_uint_t code_info_size = code_info [0 ] | (code_info [1 ] << 8 ) | (code_info [2 ] << 16 ) | (code_info [3 ] << 24 );
1043
1043
qstr source_file = code_info [4 ] | (code_info [5 ] << 8 ) | (code_info [6 ] << 16 ) | (code_info [7 ] << 24 );
1044
1044
qstr block_name = code_info [8 ] | (code_info [9 ] << 8 ) | (code_info [10 ] << 16 ) | (code_info [11 ] << 24 );
1045
- machine_uint_t source_line = 1 ;
1045
+ machine_uint_t source_line = 0 ;
1046
1046
machine_uint_t bc = code_state -> ip - code_info - code_info_size ;
1047
1047
//printf("find %lu %d %d\n", bc, code_info[12], code_info[13]);
1048
- for (const byte * ci = code_info + 12 ; * ci && bc >= ((* ci ) & 31 ); ci ++ ) {
1049
- bc -= * ci & 31 ;
1050
- source_line += * ci >> 5 ;
1048
+ const byte * ci = code_info + 12 ;
1049
+ if (* ci ) {
1050
+ source_line = 1 ;
1051
+ for (; * ci && bc >= ((* ci ) & 31 ); ci ++ ) {
1052
+ bc -= * ci & 31 ;
1053
+ source_line += * ci >> 5 ;
1054
+ }
1051
1055
}
1052
1056
mp_obj_exception_add_traceback (nlr .ret_val , source_file , source_line , block_name );
1053
1057
}
You can’t perform that action at this time.
0 commit comments