goto enderrfn;
}
- func->blocks.push_back(block);
+ func->blocks.emplace_back(block);
parser->function = old;
if (!parser_leaveblock(parser))
return false;
}
- func->blocks.push_back(body);
+ func->blocks.emplace_back(body);
*out = fval;
parser->accessors.push_back(fval);
parseerror(parser, "failed to build accessor search tree");
return false;
}
- if (!ast_block_add_expr(array->setter->constval.vfunc->blocks[0], root)) {
+ if (!ast_block_add_expr(array->setter->constval.vfunc->blocks[0].get(), root)) {
ast_delete(root);
return false;
}
}
array->setter = fval;
- return ast_block_add_expr(func->blocks[0], root);
+ return ast_block_add_expr(func->blocks[0].get(), root);
cleanup:
if (entity) ast_delete(entity);
if (index) ast_delete(index);
parseerror(parser, "failed to build accessor search tree");
return false;
}
- if (!ast_block_add_expr(array->getter->constval.vfunc->blocks[0], root)) {
+ if (!ast_block_add_expr(array->getter->constval.vfunc->blocks[0].get(), root)) {
ast_delete(root);
return false;
}
void parser_cleanup(parser_t *parser)
{
parser_remove_ast(parser);
+ parser->~parser_t();
mem_d(parser);
}