Merge pull request #180 from xonotic/mem_leak_fix_on_failure_paths

two small memory leak fixes on failure paths
This commit is contained in:
Dale Weiler 2017-11-26 17:30:30 -05:00 committed by GitHub
commit d9127bf28a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 0 deletions

1
ir.cpp
View file

@ -1474,6 +1474,7 @@ ir_instr* ir_block_create_call(ir_block *self, lex_ctx_t ctx, const char *label,
!ir_instr_op(in, 1, func, false)) !ir_instr_op(in, 1, func, false))
{ {
delete in; delete in;
delete out;
return nullptr; return nullptr;
} }
self->m_instr.push_back(in); self->m_instr.push_back(in);

View file

@ -3159,6 +3159,7 @@ static bool parse_switch_go(parser_t *parser, ast_block *block, ast_expression *
} }
if (!OPTS_FLAG(RELAXED_SWITCH)) { if (!OPTS_FLAG(RELAXED_SWITCH)) {
if (!ast_istype(swcase.m_value, ast_value)) { /* || ((ast_value*)swcase.m_value)->m_cvq != CV_CONST) { */ if (!ast_istype(swcase.m_value, ast_value)) { /* || ((ast_value*)swcase.m_value)->m_cvq != CV_CONST) { */
delete switchnode;
parseerror(parser, "case on non-constant values need to be explicitly enabled via -frelaxed-switch"); parseerror(parser, "case on non-constant values need to be explicitly enabled via -frelaxed-switch");
ast_unref(operand); ast_unref(operand);
return false; return false;