[umbrello-devel] [umbrello] [Bug 327492] crash
Ralf Habacker
ralf.habacker at freenet.de
Tue Apr 29 15:11:57 UTC 2014
https://bugs.kde.org/show_bug.cgi?id=327492
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