Bug 258604 - kturtle crashes when trying to use the 0-tuple ("()")
Summary: kturtle crashes when trying to use the 0-tuple ("()")
Status: RESOLVED FIXED
Alias: None
Product: kturtle
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Cies Breijs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-02 20:07 UTC by Sönke Hahn
Modified: 2010-12-02 21:17 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Hahn 2010-12-02 20:07:34 UTC
Application: kturtle (0.8.1 beta)
KDE Platform Version: 4.5.3 (KDE 4.5.3)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-23-generic x86_64
Distribution: Ubuntu 10.10

-- Information about the crash:
When trying to run the following program, kturtle crashes:

$x = ()

I don't think, kturtle supports tuples at all. In any case, it shouldn't crash.

The crash can be reproduced every time.

-- Backtrace:
Application: KTurtle (kturtle), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f708466e760 (LWP 3847))]

Thread 2 (Thread 0x7f707c2cd700 (LWP 3848)):
#0  0x00007fffc69ff904 in clock_gettime ()
#1  0x0000003506c040bf in clock_gettime (clock_id=1, tp=0x7f707c2ccae0) at ../sysdeps/unix/clock_gettime.c:100
#2  0x0000003504aca94f in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#4  0x0000003504b971fd in QTimerInfoList::updateCurrentTime (this=0x1) at kernel/qeventdispatcher_unix.cpp:339
#5  0x0000003504b97225 in QTimerInfoList::timerWait (this=0x1, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#6  0x0000003504b953dd in timerSourcePrepareHelper (src=<value optimized out>, timeout=0x7f707c2ccc1c) at kernel/qeventdispatcher_glib.cpp:136
#7  0x0000003504b95485 in timerSourcePrepare (source=0x1, timeout=0x7f707c2ccae0) at kernel/qeventdispatcher_glib.cpp:169
#8  0x0000003507443a11 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#9  0x0000003507443e78 in ?? () from /lib/libglib-2.0.so.0
#10 0x000000350744445c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#11 0x0000003504b951e6 in QEventDispatcherGlib::processEvents (this=0x27f3aa0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#12 0x0000003504b67a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#13 0x0000003504b67dec in QEventLoop::exec (this=0x7f707c2ccdb0, flags=) at kernel/qeventloop.cpp:201
#14 0x0000003504a722fd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#15 0x0000003504b475f8 in QInotifyFileSystemWatcherEngine::run (this=0x27f3000) at io/qfilesystemwatcher_inotify.cpp:248
#16 0x0000003504a7527e in QThreadPrivate::start (arg=0x27f3000) at thread/qthread_unix.cpp:266
#17 0x0000003506407971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#18 0x00000035058e692d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#19 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f708466e760 (LWP 3847)):
[KCrash Handler]
#6  QStyledItemDelegate::displayText (this=<value optimized out>, value=<value optimized out>, locale=<value optimized out>) at itemviews/qstyleditemdelegate.cpp:298
#7  0x00000035105bbdca in QStyledItemDelegate::initStyleOption (this=<value optimized out>, option=0x7fffc69bf6c0, index=...) at itemviews/qstyleditemdelegate.cpp:383
#8  0x00000035105bce58 in QStyledItemDelegate::sizeHint (this=0x2672cf0, option=..., index=...) at itemviews/qstyleditemdelegate.cpp:445
#9  0x000000351054c558 in QTreeView::indexRowSizeHint (this=<value optimized out>, index=<value optimized out>) at itemviews/qtreeview.cpp:2801
#10 0x000000351054c9ac in QTreeViewPrivate::itemHeight (this=0x266dd20, item=2) at itemviews/qtreeview.cpp:3229
#11 0x000000351054cc5f in QTreeViewPrivate::updateScrollBars (this=0x266dd20) at itemviews/qtreeview.cpp:3452
#12 0x000000351054d034 in QTreeView::updateGeometries (this=0x266dcf0) at itemviews/qtreeview.cpp:2686
#13 0x0000003510553599 in QTreeView::expandAll (this=0x266dcf0) at itemviews/qtreeview.cpp:2612
#14 0x0000000000420802 in Inspector::updateTree (this=0x24fce70, rootNode=<value optimized out>) at ../../../kturtle/src/inspector.cpp:243
#15 0x00000000004233ac in Inspector::qt_metacall (this=0x24fce70, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffc69bfdc0) at ./inspector.moc:87
#16 0x0000003504b80b27 in QMetaObject::activate (sender=0x2856660, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffc69bf728) at kernel/qobject.cpp:3280
#17 0x0000000000441970 in Interpreter::treeUpdated (this=0x7fffc69bf600, _t1=0x24dc1b0) at ./interpreter.moc:131
#18 0x0000000000441bb5 in Interpreter::interpret (this=0x2856660) at ../../../kturtle/src/interpreter/interpreter.cpp:90
#19 0x0000000000436ebd in MainWindow::qt_metacall (this=0x24948f0, _c=QMetaObject::InvokeMetaMethod, _id=38173050, _a=0x7fffc69bff60) at ./mainwindow.moc:215
#20 0x0000003504b80b27 in QMetaObject::activate (sender=0x29464a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fffc69bf728) at kernel/qobject.cpp:3280
#21 0x0000003504b7a8f9 in QObject::event (this=0x29464a0, e=0x7fffc69bf340) at kernel/qobject.cpp:1183
#22 0x000000350ffb7fdc in QApplicationPrivate::notify_helper (this=0x239a100, receiver=0x29464a0, e=0x7fffc69c06b0) at kernel/qapplication.cpp:4396
#23 0x000000350ffbdaed in QApplication::notify (this=0x7fffc69c0a50, receiver=0x29464a0, e=0x7fffc69c06b0) at kernel/qapplication.cpp:4277
#24 0x0000003511223526 in KApplication::notify (this=0x7fffc69c0a50, receiver=0x29464a0, event=0x7fffc69c06b0) at ../../kdeui/kernel/kapplication.cpp:310
#25 0x0000003504b68cdc in QCoreApplication::notifyInternal (this=0x7fffc69c0a50, receiver=0x29464a0, event=0x7fffc69c06b0) at kernel/qcoreapplication.cpp:732
#26 0x0000003504b986f2 in sendEvent (this=0x239de50) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#27 QTimerInfoList::activateTimers (this=0x239de50) at kernel/qeventdispatcher_unix.cpp:602
#28 0x0000003504b954a4 in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:184
#29 0x0000003507440342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x00000035074442a8 in ?? () from /lib/libglib-2.0.so.0
#31 0x000000350744445c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#32 0x0000003504b95193 in QEventDispatcherGlib::processEvents (this=0x2380e60, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#33 0x000000351006aa4e in QGuiEventDispatcherGlib::processEvents (this=0x7fffc69bf600, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x0000003504b67a02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#35 0x0000003504b67dec in QEventLoop::exec (this=0x7fffc69c0950, flags=) at kernel/qeventloop.cpp:201
#36 0x0000003504b6bebb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#37 0x000000000042b29d in main (argc=<value optimized out>, argv=<value optimized out>) at ../../../kturtle/src/main.cpp:84

Reported using DrKonqi
Comment 1 Niels Slot 2010-12-02 20:51:10 UTC
Confirmed, KTurle indeed crashes. Thanks for the bug report.

And no, KTurtle doesn't support tuples.
Comment 2 Niels Slot 2010-12-02 21:17:05 UTC
SVN commit 1202938 by nielsslot:

Make KTurtle not crash on '$x = ()'.

Combined with the previous commit it will now display an error message telling the user he or she is not allowed to use a ')' there.
BUG: 258604


 M  +1 -0      parser.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1202938