Avoid referring to edge D after the Succs or Preds arrays have

been modified, to avoid trouble in the (unlikely) scenario that
D is a reference to an element in one of those arrays.

llvm-svn: 62173
This commit is contained in:
Dan Gohman 2009-01-13 19:08:45 +00:00
parent 28cffd3dbc
commit 13141d5538
1 changed files with 3 additions and 3 deletions

View File

@ -75,8 +75,8 @@ void SUnit::addPred(const SDep &D) {
++NumPredsLeft;
if (!isScheduled)
++N->NumSuccsLeft;
N->Succs.push_back(P);
Preds.push_back(D);
N->Succs.push_back(P);
if (P.getLatency() != 0) {
this->setDepthDirty();
N->setHeightDirty();
@ -105,8 +105,8 @@ void SUnit::removePred(const SDep &D) {
}
assert(FoundSucc && "Mismatching preds / succs lists!");
Preds.erase(I);
// Update the bookkeeping;
if (D.getKind() == SDep::Data) {
// Update the bookkeeping.
if (P.getKind() == SDep::Data) {
--NumPreds;
--N->NumSuccs;
}