From 9eaf208ee5fde252ce48e5cdf3fe38bddc1add88 Mon Sep 17 00:00:00 2001 From: James Cherry Date: Tue, 14 Jun 2022 08:45:19 -0700 Subject: [PATCH] MakeTimingModel leaks Signed-off-by: James Cherry --- search/MakeTimingModel.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/search/MakeTimingModel.cc b/search/MakeTimingModel.cc index 07e7ef24..ab2720d4 100644 --- a/search/MakeTimingModel.cc +++ b/search/MakeTimingModel.cc @@ -48,6 +48,7 @@ MakeTimingModel::MakeTimingModel(const Corner *corner, Sta *sta) : StaState(sta), sta_(sta), + cell_(nullptr), corner_(corner), min_max_(MinMax::max()), lib_builder_(new LibertyBuilder), @@ -177,7 +178,9 @@ private: }; MakeEndTimingArcs::MakeEndTimingArcs(Sta *sta) : - sta_(sta) + sta_(sta), + input_pin_(nullptr), + input_rf_(nullptr) { } @@ -274,6 +277,7 @@ MakeTimingModel::findTimingFromInputs() makeInputOutputTimingArcs(input_pin, output_delays); } } + delete input_iter; } void @@ -300,6 +304,7 @@ MakeTimingModel::findOutputDelays(const RiseFall *input_rf, } } } + delete output_iter; } void @@ -341,6 +346,7 @@ MakeTimingModel::makeSetupHoldTimingArcs(const Pin *input_pin, lib_builder_->makeFromTransitionArcs(cell_, clk_port, input_port, nullptr, clk_rf, role, attrs); + cell_->addTimingArcAttrs(attrs); } } } @@ -423,15 +429,18 @@ MakeTimingModel::findClkedOutputPaths() attrs = new TimingArcAttrs(); attrs->setModel(output_rf, gate_model); } - if (attrs) + if (attrs) { lib_builder_->makeFromTransitionArcs(cell_, clk_port, output_port, nullptr, clk_rf, TimingRole::regClkToQ(), attrs); + cell_->addTimingArcAttrs(attrs); + } } } } } + delete output_iter; } LibertyPort *