diff --git a/src/gui/src/chartsWidget.cpp b/src/gui/src/chartsWidget.cpp index ca1cce2c2b1..3aedb054adc 100644 --- a/src/gui/src/chartsWidget.cpp +++ b/src/gui/src/chartsWidget.cpp @@ -274,7 +274,7 @@ SlackHistogramData ChartsWidget::fetchSlackHistogramData() StaPins end_points = stagui_->getEndPoints(); removeUnconstrainedPinsAndSetLimits(end_points); - data.constrained_pins = end_points; + data.constrained_pins = std::move(end_points); for (sta::Clock* clock : *stagui_->getClocks()) { data.clocks.insert(clock); diff --git a/src/gui/src/staDescriptors.cpp b/src/gui/src/staDescriptors.cpp index 9b149db9c6c..836496c1d9c 100644 --- a/src/gui/src/staDescriptors.cpp +++ b/src/gui/src/staDescriptors.cpp @@ -206,7 +206,7 @@ Descriptor::Properties LibertyLibraryDescriptor::getProperties( for (auto* corner : *sta_->corners()) { for (const sta::MinMax* min_max : {sta::MinMax::min(), sta::MinMax::max()}) { - const auto libs = corner->libertyLibraries(min_max); + const auto& libs = corner->libertyLibraries(min_max); if (std::find(libs.begin(), libs.end(), library) != libs.end()) { corners.insert(gui->makeSelected(corner)); } diff --git a/src/gui/src/staGuiInterface.cpp b/src/gui/src/staGuiInterface.cpp index fae12df0182..f1541435fab 100644 --- a/src/gui/src/staGuiInterface.cpp +++ b/src/gui/src/staGuiInterface.cpp @@ -1036,8 +1036,13 @@ TimingPathList STAGuiInterface::getTimingPaths( sta::RiseFallBoth::riseFall()); } - sta::Search* search = sta_->search(); + std::unique_ptr group_names; + if (!path_group_name.empty()) { + group_names = std::make_unique(); + group_names->insert(path_group_name.c_str()); + } + sta::Search* search = sta_->search(); sta::PathEndSeq path_ends = search->findPathEnds( // from, thrus, to, unconstrained e_from, @@ -1054,7 +1059,7 @@ TimingPathList STAGuiInterface::getTimingPaths( -sta::INF, sta::INF, // slack_min, slack_max, true, // sort_by_slack - nullptr, // group_names + group_names.get(), // setup, hold, recovery, removal, use_max_, !use_max_, @@ -1064,13 +1069,7 @@ TimingPathList STAGuiInterface::getTimingPaths( false, false); - sta::PathGroup* path_group - = search->findPathGroup(path_group_name.c_str(), sta::MinMax::max()); for (auto& path_end : path_ends) { - if (path_group && path_group != search->pathGroup(path_end)) { - continue; - } - TimingPath* timing_path = new TimingPath(); sta::Path* path = path_end->path();