From a4dcb62c025012179e06123e6ea8ce87354c6e99 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 16 Jun 2020 09:23:19 -0700 Subject: [PATCH] ReportPath::loadCap leak --- search/ReportPath.cc | 4 +++- search/Sim.cc | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/search/ReportPath.cc b/search/ReportPath.cc index fc8424ae..07b6e3d8 100644 --- a/search/ReportPath.cc +++ b/search/ReportPath.cc @@ -2911,7 +2911,9 @@ ReportPath::loadCap(Pin *drvr_pin, Parasitic *parasitic = nullptr; if (arc_delay_calc_) parasitic = arc_delay_calc_->findParasitic(drvr_pin, rf, dcalc_ap); - return graph_delay_calc_->loadCap(drvr_pin, parasitic, rf, dcalc_ap); + float load_cap = graph_delay_calc_->loadCap(drvr_pin, parasitic, rf, dcalc_ap); + arc_delay_calc_->finishDrvrPin(); + return load_cap; } //////////////////////////////////////////////////////////////// diff --git a/search/Sim.cc b/search/Sim.cc index 3ee5d57d..3a1d6fa8 100644 --- a/search/Sim.cc +++ b/search/Sim.cc @@ -837,8 +837,12 @@ Sim::removePropagatedValue(const Pin *pin) if (!exists) { debugPrint1(debug_, "sim", 2, "pin %s remove prop constant\n", network_->pathName(pin)); - Vertex *vertex = graph_->pinLoadVertex(pin); - setSimValue(vertex, LogicValue::unknown); + Vertex *vertex, *bidirect_drvr_vertex; + graph_->pinVertices(pin, vertex, bidirect_drvr_vertex); + if (vertex) + setSimValue(vertex, LogicValue::unknown); + if (bidirect_drvr_vertex) + setSimValue(bidirect_drvr_vertex, LogicValue::unknown); } } }