Make create after delete officially legal.

This commit is contained in:
JoelKatz
2013-01-13 17:47:29 -08:00
parent 6f33155308
commit 3b905588b5

View File

@@ -135,16 +135,17 @@ void LedgerEntrySet::entryCreate(SLE::ref sle)
return; return;
} }
assert(it->second.mSeq == mSeq);
switch (it->second.mAction) switch (it->second.mAction)
{ {
case taaMODIFY:
throw std::runtime_error("Create after modify");
case taaDELETE: case taaDELETE:
throw std::runtime_error("Create after delete"); // We could make this a modify it->second.mEntry = sle;
it->second.mAction = taaMODIFY;
it->second.mSeq = mSeq;
break;
case taaMODIFY:
throw std::runtime_error("Create after modify");
case taaCREATE: case taaCREATE:
throw std::runtime_error("Create after create"); // We could make this work throw std::runtime_error("Create after create"); // We could make this work
@@ -154,6 +155,8 @@ void LedgerEntrySet::entryCreate(SLE::ref sle)
default: default:
throw std::runtime_error("Unknown taa"); throw std::runtime_error("Unknown taa");
} }
assert(it->second.mSeq == mSeq);
} }
void LedgerEntrySet::entryModify(SLE::ref sle) void LedgerEntrySet::entryModify(SLE::ref sle)
@@ -173,6 +176,8 @@ void LedgerEntrySet::entryModify(SLE::ref sle)
case taaCACHED: case taaCACHED:
it->second.mAction = taaMODIFY; it->second.mAction = taaMODIFY;
fallthru(); fallthru();
case taaCREATE:
case taaMODIFY: case taaMODIFY:
it->second.mSeq = mSeq; it->second.mSeq = mSeq;
it->second.mEntry = sle; it->second.mEntry = sle;
@@ -181,11 +186,6 @@ void LedgerEntrySet::entryModify(SLE::ref sle)
case taaDELETE: case taaDELETE:
throw std::runtime_error("Modify after delete"); throw std::runtime_error("Modify after delete");
case taaCREATE:
it->second.mSeq = mSeq;
it->second.mEntry = sle;
break;
default: default:
throw std::runtime_error("Unknown taa"); throw std::runtime_error("Unknown taa");
} }