mirror of
https://github.com/verilator/verilator.git
synced 2026-09-02 18:58:51 +02:00
Plug memory leaks (#5016)
This commit is contained in:
+12
-2
@@ -1275,7 +1275,7 @@ public:
|
||||
if (SiblingMC* const smcp = mergeCanp->toSiblingMC()) {
|
||||
smcp->unlinkA();
|
||||
smcp->unlinkB();
|
||||
delete smcp;
|
||||
VL_DO_DANGLING(delete smcp, smcp);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -1306,6 +1306,16 @@ public:
|
||||
// Finally merge this candidate.
|
||||
contract(mergeCanp);
|
||||
}
|
||||
|
||||
// Free remaining SiblingMCs
|
||||
while (MergeCandidate* const mergeCanp = m_sb.best()) {
|
||||
m_sb.remove(mergeCanp);
|
||||
if (SiblingMC* const smcp = mergeCanp->toSiblingMC()) {
|
||||
smcp->unlinkA();
|
||||
smcp->unlinkB();
|
||||
VL_DO_DANGLING(delete smcp, smcp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -1426,7 +1436,7 @@ private:
|
||||
// Remove the siblingMC
|
||||
mergeSibsp->unlinkA();
|
||||
mergeSibsp->unlinkB();
|
||||
VL_DO_DANGLING(delete mergeEdgep, mergeEdgep);
|
||||
VL_DO_DANGLING(delete mergeSibsp, mergeSibsp);
|
||||
}
|
||||
|
||||
// This also updates cost and stepCost on recipientp
|
||||
|
||||
Reference in New Issue
Block a user