On 09/14/2015 11:13 AM, Igor Mironchik wrote: > Hi, > > it seems that problem not in the iterating and deletion from cantainer... > > I wrote simple test app and everything is ok. > > But something here crashes my app and only in release mode, so I can't > understand what is the problem... > > And ideas? >
Have you run under valgrind to see if it offers any leads. > 9/14/2015 6:06 PM, André Somers пишет: >> Op 14-9-2015 om 16:57 schreef Igor Mironchik: >>> Hi, >>> >>> I ran into this problem... >>> >>> void >>> ImageFilesStoragePrivate::removeAllImages( >>> QList< ImageRecord> & images, >>> ImageFilesStorage::ImageType type ) >>> { >>> QList< ImageRecord>::Iterator it = images.begin(); >>> QList< ImageRecord>::Iterator last = images.end(); >>> >>> while( it != last ) >>> { >>> if( (*it).m_type == type ) >>> { >>> LOG( DebugLogLevel, "Before real deletion" ) >>> removeFromDatabase( it ); >>> LOG( DebugLogLevel, "After real deletion" ) >>> >>> // it = images.erase( it ); // LOOK AT THIS LINE !!! If I >>> uncomment it and comment next line - crash... >>> ++it; >>> >>> LOG( DebugLogLevel, QString( "it == last : %1" ).arg( ( it >>> == last ? "true" : "false" ) ) ) >>> } >>> else >>> ++it; >>> } >>> } >>> >>> What is wrong? >> A lot is wrong. >> >> First, you are not using standard algorithms to do standard things. I'd >> say std::remove_if with std::erase would be a better way to solve the issue. >> >> Then in general, if you delete from the container, iterators are going >> to be invalidated. Iterate backwards if you are going to delete items >> from the container. >> >> Last: you probably don't want to use QList but QVector. >> >> André >> >> >> _______________________________________________ >> Interest mailing list >> Interest@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest