equal
deleted
inserted
replaced
407 while (it != _observers.end()) { |
407 while (it != _observers.end()) { |
408 try { |
408 try { |
409 (*it)->erase(item); |
409 (*it)->erase(item); |
410 ++it; |
410 ++it; |
411 } catch (const ImmediateDetach&) { |
411 } catch (const ImmediateDetach&) { |
412 it = _observers.erase(it); |
|
413 (*it)->_index = _observers.end(); |
412 (*it)->_index = _observers.end(); |
414 (*it)->_notifier = 0; |
413 (*it)->_notifier = 0; |
|
414 it = _observers.erase(it); |
415 } |
415 } |
416 } |
416 } |
417 } |
417 } |
418 |
418 |
419 /// \brief Notifies all the registed observers about more item erased |
419 /// \brief Notifies all the registed observers about more item erased |
427 while (it != _observers.end()) { |
427 while (it != _observers.end()) { |
428 try { |
428 try { |
429 (*it)->erase(items); |
429 (*it)->erase(items); |
430 ++it; |
430 ++it; |
431 } catch (const ImmediateDetach&) { |
431 } catch (const ImmediateDetach&) { |
432 it = _observers.erase(it); |
|
433 (*it)->_index = _observers.end(); |
432 (*it)->_index = _observers.end(); |
434 (*it)->_notifier = 0; |
433 (*it)->_notifier = 0; |
|
434 it = _observers.erase(it); |
435 } |
435 } |
436 } |
436 } |
437 } |
437 } |
438 |
438 |
439 /// \brief Notifies all the registed observers about the container is |
439 /// \brief Notifies all the registed observers about the container is |
466 while (it != _observers.end()) { |
466 while (it != _observers.end()) { |
467 try { |
467 try { |
468 (*it)->clear(); |
468 (*it)->clear(); |
469 ++it; |
469 ++it; |
470 } catch (const ImmediateDetach&) { |
470 } catch (const ImmediateDetach&) { |
471 it = _observers.erase(it); |
|
472 (*it)->_index = _observers.end(); |
471 (*it)->_index = _observers.end(); |
473 (*it)->_notifier = 0; |
472 (*it)->_notifier = 0; |
|
473 it = _observers.erase(it); |
474 } |
474 } |
475 } |
475 } |
476 } |
476 } |
477 }; |
477 }; |
478 |
478 |