public bool DoFixups(bool asContainer, ObjectManager manager, bool strict)
{
BaseFixupRecord prevFixup = null;
BaseFixupRecord fixup = asContainer ? FixupChainAsContainer : FixupChainAsRequired;
bool allFixed = true;
while (fixup != null) {
if (fixup.DoFixup(manager, strict)) {
UnchainFixup(fixup, prevFixup, asContainer);
if (asContainer) fixup.ObjectRequired.RemoveFixup(fixup, false);
else fixup.ObjectToBeFixed.RemoveFixup(fixup, true);
} else {
prevFixup = fixup;
allFixed = false;
}
fixup = asContainer ? fixup.NextSameContainer : fixup.NextSameRequired;
}
return allFixed;
}