[solved]qmap::contains fails with segmentation fault



  • I don't know what's wrong with this code:

    @
    QMap<QString,QPersistentModelIndex> rows;
    int KeyAbstractModel::getRow(QString key){
    if(rows.contains(key))
    return rows[key].row();
    else return -1;
    }
    @

    it crashes whit segfault on rows.contains(key). I think the map contains something; for some reasons, debugger tells me <no such value> on rows. but also with an empty map, contains must work.



  • Is this your actual code?
    It very much sounds like you are trying to access not only an empty QMap, but a non-existant one.



  • yes. in fact I really think this is a qt bug, because the segfault signal comes during execution of qmap.h code. rows is not a null pointer, however. (it's not a pointer :D)

    edit: it seems I'm the only person that can solve a segfault problem sobstituting an object with a pointer to it.
    I modified rows into a QMap * and in constructor I wrote rows= new QMap<...>(); and now it works properly.
    really a strange thing.
    Thanks for making me have this idea, and thanks if someone has an hypothesis about this issue.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.