Fixes #6487, GDscript compiler ignores OPCODE_LINE and OPCODE_BREAKPOINT in Release mode

When godot is in release mode, GDscript compiler does not generate
bytecodes for OPCODE_LINE and OPCODE_BREAKPOINT anymore.

This optimizes GDscript execution speed when the script contains a lot
of comments in blocs executed in loops.

Fixes #6487

(cherry picked from commit 217e09c79d)
This commit is contained in:
yg2f 2016-09-20 13:54:17 +02:00 committed by Rémi Verschelde
parent 9f9d1eed7b
commit caf42f77d2

View file

@ -965,12 +965,12 @@ Error GDCompiler::_parse_block(CodeGen& codegen,const GDParser::BlockNode *p_blo
switch(s->type) { switch(s->type) {
case GDParser::Node::TYPE_NEWLINE: { case GDParser::Node::TYPE_NEWLINE: {
#ifdef DEBUG_ENABLED
const GDParser::NewLineNode *nl = static_cast<const GDParser::NewLineNode*>(s); const GDParser::NewLineNode *nl = static_cast<const GDParser::NewLineNode*>(s);
codegen.opcodes.push_back(GDFunction::OPCODE_LINE); codegen.opcodes.push_back(GDFunction::OPCODE_LINE);
codegen.opcodes.push_back(nl->line); codegen.opcodes.push_back(nl->line);
codegen.current_line=nl->line; codegen.current_line=nl->line;
#endif
} break; } break;
case GDParser::Node::TYPE_CONTROL_FLOW: { case GDParser::Node::TYPE_CONTROL_FLOW: {
// try subblocks // try subblocks
@ -1161,8 +1161,10 @@ Error GDCompiler::_parse_block(CodeGen& codegen,const GDParser::BlockNode *p_blo
codegen.opcodes.push_back(ret); codegen.opcodes.push_back(ret);
} break; } break;
case GDParser::Node::TYPE_BREAKPOINT: { case GDParser::Node::TYPE_BREAKPOINT: {
#ifdef DEBUG_ENABLED
// try subblocks // try subblocks
codegen.opcodes.push_back(GDFunction::OPCODE_BREAKPOINT); codegen.opcodes.push_back(GDFunction::OPCODE_BREAKPOINT);
#endif
} break; } break;
case GDParser::Node::TYPE_LOCAL_VAR: { case GDParser::Node::TYPE_LOCAL_VAR: {