[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){
    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