Fixed small memory leak in ast simplify
authorClifford Wolf <clifford@clifford.at>
Thu, 21 Aug 2014 15:33:40 +0000 (17:33 +0200)
committerClifford Wolf <clifford@clifford.at>
Thu, 21 Aug 2014 15:33:40 +0000 (17:33 +0200)
frontends/ast/simplify.cc

index 859058cb981d31d5167ef9b00dbc94c2d3ab7e64..68c17271cf52ee7d25f8f5ada8ff96d3e664576e 100644 (file)
@@ -1585,8 +1585,8 @@ skip_dynamic_range_lvalue_expansion:;
                                        {
                                                AstNode *arg = children[arg_count++]->clone();
                                                AstNode *assign = child->is_input ?
-                                                               new AstNode(AST_ASSIGN_EQ, wire_id, arg) :
-                                                               new AstNode(AST_ASSIGN_EQ, arg, wire_id);
+                                                               new AstNode(AST_ASSIGN_EQ, wire_id->clone(), arg) :
+                                                               new AstNode(AST_ASSIGN_EQ, arg, wire_id->clone());
 
                                                for (auto it = current_block->children.begin(); it != current_block->children.end(); it++) {
                                                        if (*it != current_block_child)
@@ -1596,7 +1596,7 @@ skip_dynamic_range_lvalue_expansion:;
                                                }
                                        }
 
-                                       AstNode *cell_arg = new AstNode(AST_ARGUMENT, wire_id->clone());
+                                       AstNode *cell_arg = new AstNode(AST_ARGUMENT, wire_id);
                                        cell_arg->str = child->str == str ? outport : child->str;
                                        cell->children.push_back(cell_arg);
                                }