define_corners invalid memory access

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2023-03-06 16:55:27 -07:00
parent 1e53cc3b5a
commit 431b6542a9
3 changed files with 8 additions and 1 deletions

View File

@ -184,6 +184,7 @@ public:
~Sdc();
// Note that Search may reference a Filter exception removed by clear().
void clear();
void makeCornersBefore();
void makeCornersAfter(Corners *corners);
// Return true if pin is referenced by any constraint.
bool isConstrained(const Pin *pin) const;

View File

@ -368,11 +368,16 @@ Sdc::deleteNetBefore(const Net *net)
}
}
void
Sdc::makeCornersBefore()
{
removeNetLoadCaps();
}
void
Sdc::makeCornersAfter(Corners *corners)
{
corners_ = corners;
removeNetLoadCaps();
port_ext_cap_maps_.resize(corners_->count(), PortExtCapMap(PortIdLess(network_)));
net_wire_cap_maps_.resize(corners_->count(), NetWireCapMap(NetIdLess(network_)));
drvr_pin_wire_cap_maps_.resize(corners_->count(), PinWireCapMap(PinIdLess(network_)));

View File

@ -2412,6 +2412,7 @@ Sta::makeCorners()
void
Sta::makeCorners(StringSet *corner_names)
{
sdc_->makeCornersBefore();
parasitics_->deleteParasitics();
corners_->makeCorners(corner_names);
makeParasiticAnalysisPts();