[umbrello-devel] [umbrello] [Bug 327492] crash

Ralf Habacker ralf.habacker at freenet.de
Tue Apr 29 15:11:57 UTC 2014


Ralf Habacker <ralf.habacker at freenet.de> changed:

           What    |Removed                     |Added
             Status|UNCONFIRMED                 |NEEDSINFO
         Resolution|---                         |FIXED

--- Comment #2 from Ralf Habacker <ralf.habacker at freenet.de> ---
(In reply to comment #1)
> The crash happens probably on access to the QGraphicsSceneMouseEvent
> instance d-pointer.
Looks like that the d-pointer has been overwritten by a memory corruption
problem somewhere else because:

The memory area to which the d-Pointer points, seems partially be invalid or
corrupted,  because the event modifiers has been accessed without any problem
in line 2824 

2824    if( me->modifiers() != Qt::ShiftModifier )

Qt::KeyboardModifiers QGraphicsSceneMouseEvent::modifiers() const
    Q_D(const QGraphicsSceneMouseEvent);
    return d->modifiers;

and then the crash happens at line 2827 

2827    if(me->button() == Qt::LeftButton && me->modifiers() &&
Qt::ControlModifier) {

Qt::MouseButton QGraphicsSceneMouseEvent::button() const
    Q_D(const QGraphicsSceneMouseEvent);
    return d->button;

According to 

class QGraphicsSceneMouseEventPrivate : public QGraphicsSceneEventPrivate
    QPointF pos;
    QPointF scenePos;
    QPoint screenPos;
    QPointF lastPos;
    QPointF lastScenePos;
    QPoint lastScreenPos;
    QMap<Qt::MouseButton, QPointF> buttonDownPos;
    QMap<Qt::MouseButton, QPointF> buttonDownScenePos;
    QMap<Qt::MouseButton, QPoint> buttonDownScreenPos;
    Qt::MouseButton button;
    Qt::MouseButtons buttons;
    Qt::KeyboardModifiers modifiers;

is the modifiers class member located at the end of the private event data and
the button member before. Crashing on access of the button member indicates
that the d-pointer points to a location not owned by the current process. 

>From the backtrace it can also be determined, that the crash happened on a left
mouse click on an association.

You are receiving this mail because:
You are the assignee for the bug.

More information about the umbrello-devel mailing list