Ignore:
Timestamp:
06/27/09 11:12:12 (15 years ago)
Author:
mwajcht
Message:

Bug-fix in erasing elements from vectors in 'for' loops - use integer loop counters instead of iterators (after last element of a vector is erased incremented iterator does not point to vector.end())

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/f8-to-f1/conv_f8tof1.cpp

    r11 r23  
    702702                         subProdIter != prodIter->second->subproductions.end(); subProdIter++) {
    703703                        SubProduction subProduction = *subProdIter;
    704                         for (vector<ActionStrP>::iterator actionIter = subProduction.actions.begin();
    705                                  actionIter != subProduction.actions.end(); actionIter++) {
    706                                 if ((*actionIter).action == NULL) {
    707                                         subProduction.actions.erase(actionIter);
     704                        for (int i = 0; i < subProduction.actions.size(); i++) {
     705                                if (subProduction.actions.at(i).action == NULL) {
     706                                        subProduction.actions.erase(subProduction.actions.begin() + i);
    708707                                }
    709708                        }
Note: See TracChangeset for help on using the changeset viewer.