Browse Source

GDScript debugger incorrect error line fixed

if the first line of an else or an elif throws a runtime error the
debugger shows incorrect line number.

(cherry picked from commit 9325671faa9d8407996effd4366f47733a1ec21b)
Thakee Nathees 5 năm trước cách đây
mục cha
commit
bf9df88a7c
1 tập tin đã thay đổi với 4 bổ sung0 xóa
  1. 4 0
      modules/gdscript/gdscript_compiler.cpp

+ 4 - 0
modules/gdscript/gdscript_compiler.cpp

@@ -1381,6 +1381,10 @@ Error GDScriptCompiler::_parse_block(CodeGen &codegen, const GDScriptParser::Blo
 							codegen.opcodes.push_back(0);
 							codegen.opcodes.write[else_addr] = codegen.opcodes.size();
 
+							codegen.opcodes.push_back(GDScriptFunction::OPCODE_LINE);
+							codegen.opcodes.push_back(cf->body_else->line);
+							codegen.current_line = cf->body_else->line;
+
 							Error err2 = _parse_block(codegen, cf->body_else, p_stack_level, p_break_addr, p_continue_addr);
 							if (err2)
 								return err2;