Hello, Thank you very much for your help. That really helped me to solve my issue. I really appreciate your suggestion on this.
Once again thanks for your help. Thank You, Ankit Gandhi. On Wed, Nov 18, 2009 at 1:16 AM, Ludovico Cavedon < [email protected]> wrote: > Hi, > > ANKIT GANDHI wrote: > > for (std::list<Contact>::const_iterator it = > > _contactList->getContacts().begin(); > > it != _contactList->getContacts().end(); > > *it++* /*<<-- Suspect of crashing qutecom*/) > > { > > > > LOG_INFO("temp log"); > > > > if(it->getContactType()=="Auto") > > { > > LOG_INFO("removing : " + it->getUUID()); > > > > _contactList->removeContact(*_contactList->getContact(it->getUUID())); > > } > > } > > > > Now when this for loop executes, first loop it goes well, now when it > > does it++ and tries to iterate to next contact, qutecom crashes. So can > > anyone suggest me any idea how can I iterate over the contacts, check > > some condition of contact and remove those ? > > If you remove the contact referenced by "it", the iterator will no > longer be valid, So you need to increment it before removing the element. > Something like: > > if(it->getContactType()=="Auto") > { > _contactList->removeContact(*_contactList->getContact(it++->getUUID())); > } > else > ++it; > > And remove the increment operation on "it" from the for loop. > > HTH, > Cheers, > Ludovico >
_______________________________________________ QuteCom-dev mailing list [email protected] http://lists.qutecom.org/mailman/listinfo/qutecom-dev
