From 9d259796ca542ab338ddc616db0e11e18a48e1e3 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Fri, 9 Aug 2024 14:02:25 -0700 Subject: [PATCH] cudd usage memory leak Signed-off-by: James Cherry --- search/Bdd.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/search/Bdd.cc b/search/Bdd.cc index 43e55adc..a2598c15 100644 --- a/search/Bdd.cc +++ b/search/Bdd.cc @@ -115,9 +115,9 @@ Bdd::ensureNode(const LibertyPort *port) auto port_var = bdd_port_var_map_.find(port); DdNode *node = nullptr; if (port_var == bdd_port_var_map_.end()) { - node = Cudd_bddNewVar(cudd_mgr_); + unsigned var_index = bdd_port_var_map_.size(); + node = Cudd_bddIthVar(cudd_mgr_, var_index); bdd_port_var_map_[port] = node; - unsigned var_index = Cudd_NodeReadIndex(node); bdd_var_idx_port_map_[var_index] = port; Cudd_Ref(node); } @@ -149,8 +149,6 @@ Bdd::varIndexPort(int var_index) void Bdd::clearVarMap() { - for (const auto [port, var_node] : bdd_port_var_map_) - Cudd_RecursiveDeref(cudd_mgr_, var_node); bdd_port_var_map_.clear(); bdd_var_idx_port_map_.clear(); }