Changeset 3db67e for molecuilder/src


Ignore:
Timestamp:
Feb 25, 2010, 4:56:16 PM (16 years ago)
Author:
Tillmann Crueger <crueger@…>
Children:
33bc66
Parents:
8d9d38
Message:

FIX: repaired some access violation of STL-iterators in Observer and ActionRegistry

Location:
molecuilder/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • molecuilder/src/Actions/ActionRegistry.cpp

    r8d9d38 r3db67e  
    2424{
    2525  map<const string,Action*>::iterator iter;
    26   for(iter=actionMap.begin();iter!=actionMap.end();iter++) {
     26  for(iter=actionMap.begin();iter!=actionMap.end();++iter) {
    2727    delete iter->second;
    28     actionMap.erase(iter);
    2928  }
     29  actionMap.clear();
    3030}
    3131
  • molecuilder/src/Patterns/Observer.cpp

    r8d9d38 r3db67e  
    7979    callees_t *callees = callTable[this];
    8080    callees_t::iterator iter;
    81     for(iter=callees->begin();iter!=callees->end();iter++){
     81    for(iter=callees->begin();iter!=callees->end();++iter){
    8282      (*iter).second->update(this);
    8383    }
     
    123123
    124124  callees_t::iterator iter;
    125   for(iter=callees->begin();iter!=callees->end();iter++){
     125  for(iter=callees->begin();iter!=callees->end();++iter){
    126126    res |= ((*iter).second == target);
    127127  }
     
    134134  callees_t *callees = callTable[this];
    135135  callees_t::iterator iter;
    136   for(iter=callees->begin();iter!=callees->end();iter++) {
    137     if((*iter).second == target)
    138       callees->erase(iter);
     136  for(iter=callees->begin();iter!=callees->end();) {
     137    if((*iter).second == target) {
     138      callees->erase(iter++);
     139    }
     140    else {
     141      ++iter;
     142    }
    139143  }
    140144  if(callees->empty()){
     
    158162    callees_t *callees = callTable[this];
    159163    callees_t::iterator iter;
    160     for(iter=callees->begin();iter!=callees->end();iter++){
     164    for(iter=callees->begin();iter!=callees->end();++iter){
    161165      (*iter).second->subjectKilled(this);
    162166    }
Note: See TracChangeset for help on using the changeset viewer.