Hi,

I'm creating map group objects and add them to a map. Once I remove them
my app segfaults. To me it looks like a bug, but before I file it it
would be nice if someone could tell me that I'm using the API correctly.

In a subclass of QGraphicsGeoMap I'm creating map objects like this:

void MapWidget::addPoi(double lat, double lon, QString uuid)
{
    QGeoCoordinate coord(lat, lon);

    QPixmap pixmap(":qml/Common/img/poi_green.png");
    QGeoMapPixmapObject *pixMapObject = new QGeoMapPixmapObject(coord,
QPoint(-20,-70), pixmap);
    pixMapObject->setZValue(1);

    QGeoMapCircleObject *circle = new QGeoMapCircleObject(coord, 100);
    circle->setPen(QPen((QColor(255, 0, 0, 90))));
    circle->setBrush(QBrush(QColor(255, 0, 0, 90)));
    circle->setZValue(2);

    QGeoMapGroupObject *poi = new QGeoMapGroupObject();
    poi->addChildObject(circle);
    poi->addChildObject(pixMapObject);

    addMapObject(poi);
}

Now if I later call clearMapObjects() or removeMapObject() it crashes.
If I directly add circle objects or pixmap objects without using a group
everything works fine.

Below is also a stack trace.

Cheers,
Conny


#0  0x00007ffff587f044 in QGraphicsItem::scene (this=0xe7f0e0) at
graphicsview/qgraphicsitem.cpp:1496
No locals.
#1  0x00007ffff58c916d in QGraphicsScene::removeItem (this=0xe79c00,
item=0xe7f0e0) at graphicsview/qgraphicsscene.cpp:2953
        newSceneVariant = {d = {data = {c = -112 '\220', i = -26224, u =
4294941072, b = 144, d = 6.9533558065393666e-310, f = -nan(0x7f9990),
real = 6.9533558065393666e-310, ll = 140737488329104, ull =
140737488329104, o = 0x7fffffff9990, ptr = 0x7fffffff9990, shared =
0x7fffffff9990}, type = 15256624, is_shared = 0, is_null = 0}}
        targetScene = <value optimized out>
#2  0x00007ffff7b600cc in
QtMobility::QGeoTiledMapObjectInfo::~QGeoTiledMapObjectInfo
(this=0xe7ed60, __in_chrg=<value optimized out>) at
maps/tiled/qgeotiledmapobjectinfo_p.cpp:69
No locals.
#3  0x00007ffff7b621d6 in
QtMobility::QGeoTiledMapPixmapObjectInfo::~QGeoTiledMapPixmapObjectInfo
(this=0xe7ed60, __in_chrg=<value optimized out>) at
maps/tiled/qgeotiledmappixmapobjectinfo_p.cpp:77
No locals.
#4  0x00007ffff7b7036c in QtMobility::QGeoMapObject::setMapData
(this=0xe7e0d0, mapData=0x0) at maps/qgeomapobject.cpp:229
No locals.
#5  0x00007ffff7b6f130 in QtMobility::QGeoMapGroupObject::setMapData
(this=0xe7e610, mapData=0x0) at maps/qgeomapgroupobject.cpp:201
        i = 0
#6  0x00007ffff7b6efd0 in
QtMobility::QGeoMapGroupObject::removeChildObject (this=0xe79c20,
childObject=0xe7e610) at maps/qgeomapgroupobject.cpp:166
No locals.
#7  0x00007ffff7b6c9ed in QtMobility::QGeoMapData::removeMapObject
(this=0xe7bd30, mapObject=0xe7e610) at maps/qgeomapdata.cpp:323
No locals.
#8  0x00007ffff7b886fb in QtMobility::QGraphicsGeoMap::removeMapObject
(this=0xe7bbd0, mapObject=0xe7e610) at maps/qgraphicsgeomap.cpp:438
No locals.
#9  0x000000000042b5b6 in MapWidget::clearPois (this=0xe7bbd0)
at ../../cuteschall/src/map_widget.cpp:135

_______________________________________________
Qt-mobility-feedback mailing list
Qt-mobility-feedback@trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-mobility-feedback

Reply via email to