Fixed a bad iterator

This commit is contained in:
Josh Yelon 2007-02-12 19:39:28 +00:00
parent 08939fad16
commit ee6d7813a6

View File

@ -2730,17 +2730,21 @@ detach_one_stage(NodePathComponent *child, int pipeline_stage,
Down::iterator di; Down::iterator di;
bool found = false; bool found = false;
Down &down = *cdata_parent->modify_down(); Down &down = *cdata_parent->modify_down();
for (di = down.begin(); di != down.end() && !found; ++di) { for (di = down.begin(); di != down.end(); ++di) {
if ((*di).get_child() == child_node) { if ((*di).get_child() == child_node) {
down.erase(di); down.erase(di);
found = true; found = true;
break;
} }
} }
Down &stashed = *cdata_parent->modify_stashed(); if (!found) {
for (di = stashed.begin(); di != stashed.end() && !found; ++di) { Down &stashed = *cdata_parent->modify_stashed();
if ((*di).get_child() == child_node) { for (di = stashed.begin(); di != stashed.end(); ++di) {
stashed.erase(di); if ((*di).get_child() == child_node) {
found = true; stashed.erase(di);
found = true;
break;
}
} }
} }
nassertv(found); nassertv(found);