qapplication_x11.cpp: Change in event-loop behaviour causes crashes.

Matthias Kretz kretz at kde.org
Tue Jul 30 09:58:47 BST 2002


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tuesday 30 July 2002 09:27, qt-bugs at trolltech.com wrote:
> On Thursday, 25 Jul 2002 17:03, Waldo Bastian wrote:
> > However, with the recent changes to the event loop both these events are
> > now handled from the event-loop of the popupmenu instead of returning to
> > the main event loop first. This results in the crashes that these methods
> > were supposed to prevent.
> >
> > The attached patch fixes the problem.
>
> Do you have a small example of the problem?  I can't reproduce this crash
> at all.

I got crashes in a KListView (should probably crash with QListView, too) when 
dragging and dropping ListViewItems around. I just had to do it long enough - 
normally around 20 times - and it would crash with the attached bt. I looked 
into the Qt code for dnd and the event loop change is the only way I could 
see that the object pointer could be 0.

- -- 
C'ya
        Matthias
________________________________________________________
Matthias Kretz (Germany)
http://Vir.homeip.net/
MatthiasKretz at gmx.net, kretz at kde.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE9RlVHyg4WnCj6OIoRAsvuAJwKtNc6Q4JvHIMIOFOyVl+PyVBfTACggePt
7KVrpa1OSx2SFCY8gMhRV9k=
=aDxp
-----END PGP SIGNATURE-----
-------------- next part --------------
[New Thread 1024 (LWP 626)]
0x410bca39 in wait4 () from /lib/libc.so.6
#0  0x410bca39 in wait4 () from /lib/libc.so.6
#1  0x41133e48 in __check_rhosts_file () from /lib/libc.so.6
#2  0x40fa3453 in waitpid () from /lib/libpthread.so.0
#3  0x4067bea1 in KCrash::defaultCrashHandler (sig=11)
    at /home/mkretz/KDE/kdelibs/kdecore/kcrash.cpp:224
#4  0x40fa0f54 in pthread_sighandler () from /lib/libpthread.so.0
#5  0x410456b8 in sigaction () from /lib/libc.so.6
#6  0x409d1eed in QDragObject::source (this=0x0)
    at /rh/devel/KDE/qt-copy/src/kernel/qdragobject.cpp:480
#7  0x40973179 in QDragManager::move (this=0x81fe660, globalPos=@0xbfffe9a4)
    at /rh/devel/KDE/qt-copy/src/kernel/qdnd_x11.cpp:1240
#8  0x40971faa in QDragManager::timerEvent (this=0x81fe660, e=0xbfffeb9c)
    at /rh/devel/KDE/qt-copy/src/kernel/qdnd_x11.cpp:852
#9  0x40a1f052 in QObject::event (this=0x81fe660, e=0xbfffeb9c)
    at /rh/devel/KDE/qt-copy/src/kernel/qobject.cpp:661
#10 0x409c2869 in QApplication::internalNotify (this=0xbffff7a4, 
    receiver=0x81fe660, e=0xbfffeb9c)
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication.cpp:2209
#11 0x409c1d50 in QApplication::notify (this=0xbffff7a4, receiver=0x81fe660, 
    e=0xbfffeb9c) at /rh/devel/KDE/qt-copy/src/kernel/qapplication.cpp:2020
#12 0x406052d3 in KApplication::notify (this=0xbffff7a4, receiver=0x81fe660, 
    event=0xbfffeb9c) at /home/mkretz/KDE/kdelibs/kdecore/kapplication.cpp:556
#13 0x40cf1f7c in QApplication::sendEvent (receiver=0x81fe660, 
    event=0xbfffeb9c)
    at /rh/devel/KDE/qt-copy/src/.moc/debug-shared-mt/../../kernel/qapplication.h:441
#14 0x4095f3f5 in qt_activate_timers ()
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication_x11.cpp:4356
#15 0x4095c5be in QApplication::processNextEvent (this=0xbffff7a4, 
    canWait=true) at /rh/devel/KDE/qt-copy/src/kernel/qapplication_x11.cpp:3198
#16 0x409c442f in QApplication::enter_loop (this=0xbffff7a4)
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication.cpp:3089
#17 0x409740e4 in QDragManager::drag (this=0x81fe660, o=0x821d718, 
    mode=DragDefault) at /rh/devel/KDE/qt-copy/src/kernel/qdnd_x11.cpp:1650
#18 0x409d1eb0 in QDragObject::drag (this=0x821d718, mode=DragDefault)
    at /rh/devel/KDE/qt-copy/src/kernel/qdragobject.cpp:466
#19 0x409d1dc4 in QDragObject::drag (this=0x821d718)
    at /rh/devel/KDE/qt-copy/src/kernel/qdragobject.cpp:386
#20 0x40468474 in KListView::startDrag (this=0x8188868)
    at /home/mkretz/KDE/kdelibs/kdeui/klistview.cpp:1064
#21 0x40af133f in QListView::contentsMouseMoveEvent (this=0x8188868, 
    e=0xbfffef34) at /rh/devel/KDE/qt-copy/src/widgets/qlistview.cpp:4258
#22 0x404671fd in KListView::contentsMouseMoveEvent (this=0x8188868, 
    e=0xbfffef34) at /home/mkretz/KDE/kdelibs/kdeui/klistview.cpp:753
#23 0x40b21f71 in QScrollView::viewportMouseMoveEvent (this=0x8188868, 
    e=0xbffff3e4) at /rh/devel/KDE/qt-copy/src/widgets/qscrollview.cpp:1625
#24 0x40b214ea in QScrollView::eventFilter (this=0x8188868, obj=0x8188ff0, 
    e=0xbffff3e4) at /rh/devel/KDE/qt-copy/src/widgets/qscrollview.cpp:1369
#25 0x40aeeb6e in QListView::eventFilter (this=0x8188868, o=0x8188ff0, 
    e=0xbffff3e4) at /rh/devel/KDE/qt-copy/src/widgets/qlistview.cpp:3538
#26 0x40a1f1a8 in QObject::activate_filters (this=0x8188ff0, e=0xbffff3e4)
    at /rh/devel/KDE/qt-copy/src/kernel/qobject.cpp:779
#27 0x40a1effd in QObject::event (this=0x8188ff0, e=0xbffff3e4)
    at /rh/devel/KDE/qt-copy/src/kernel/qobject.cpp:655
#28 0x40a54ab5 in QWidget::event (this=0x8188ff0, e=0xbffff3e4)
    at /rh/devel/KDE/qt-copy/src/kernel/qwidget.cpp:4220
#29 0x409c2869 in QApplication::internalNotify (this=0xbffff7a4, 
    receiver=0x8188ff0, e=0xbffff3e4)
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication.cpp:2209
#30 0x409c1eb3 in QApplication::notify (this=0xbffff7a4, receiver=0x8188ff0, 
    e=0xbffff3e4) at /rh/devel/KDE/qt-copy/src/kernel/qapplication.cpp:2051
#31 0x406052d3 in KApplication::notify (this=0xbffff7a4, receiver=0x8188ff0, 
    event=0xbffff3e4) at /home/mkretz/KDE/kdelibs/kdecore/kapplication.cpp:556
#32 0x40cf1ff4 in QApplication::sendSpontaneousEvent (receiver=0x8188ff0, 
    event=0xbffff3e4)
    at /rh/devel/KDE/qt-copy/src/.moc/debug-shared-mt/../../kernel/qapplication.h:444
#33 0x40960b4d in QETWidget::translateMouseEvent (this=0x8188ff0, 
    event=0xbffff67c)
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication_x11.cpp:4822
#34 0x4095d5c0 in QApplication::x11ProcessEvent (this=0xbffff7a4, 
    event=0xbffff67c)
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication_x11.cpp:3587
#35 0x4095c099 in QApplication::processNextEvent (this=0xbffff7a4, 
    canWait=true) at /rh/devel/KDE/qt-copy/src/kernel/qapplication_x11.cpp:3090
#36 0x409c442f in QApplication::enter_loop (this=0xbffff7a4)
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication.cpp:3089
#37 0x4095bf93 in QApplication::exec (this=0xbffff7a4)
    at /rh/devel/KDE/qt-copy/src/kernel/qapplication_x11.cpp:3045
#38 0x40027c71 in main (argc=1, argv=0xbffff914)
    at /home/mkretz/KDE/kdegraphics/kview/main.cpp:72


More information about the kde-core-devel mailing list