On Wed, Apr 27, 2011 at 12:21:10AM +1000, Grant Diffey wrote:

Hi!

JFTR, here's a more detailed backtrace:

(gdb) bt
#0  QWidget::palette (this=0x0) at kernel/qwidget.cpp:4587
#1  0x000000000041c96c in qjackctlClientItem::setHilite (this=0x7f0810,
bHilite=false) at qjackctlConnect.cpp:367
#2  0x000000000041c23a in qjackctlPortItem::setHilite (this=0x927e80,
bHilite=false) at qjackctlConnect.cpp:202
#3  0x000000000041c03c in qjackctlPortItem::removeConnect
(this=0x89bf00, pPort=0x927e80) at qjackctlConnect.cpp:151
#4  0x000000000041bd3b in qjackctlPortItem::~qjackctlPortItem
(this=0x927e80, __in_chrg=<value optimized out>) at
qjackctlConnect.cpp:79
#5  0x0000000000428b3d in qjackctlJackPort::~qjackctlJackPort
(this=0x927e80, __in_chrg=<value optimized out>) at
qjackctlJackConnect.cpp:71
#6  0x0000000000428b70 in qjackctlJackPort::~qjackctlJackPort
(this=0x927e80, __in_chrg=<value optimized out>) at
qjackctlJackConnect.cpp:73
#7  0x0000000000424b4e in
qDeleteAll<QList<qjackctlPortItem*>::const_iterator> (begin=...,
end=...) at /usr/include/qt4/QtCore/qalgorithms.h:322
#8  0x0000000000423e16 in qDeleteAll<QList<qjackctlPortItem*> > (c=...)
at /usr/include/qt4/QtCore/qalgorithms.h:330
#9  0x000000000041c50a in qjackctlClientItem::~qjackctlClientItem
(this=0x7f0810, __in_chrg=<value optimized out>) at
qjackctlConnect.cpp:255
#10 0x0000000000428cf1 in qjackctlJackClient::~qjackctlJackClient
(this=0x7f0810, __in_chrg=<value optimized out>) at
qjackctlJackConnect.cpp:108
#11 0x0000000000428d24 in qjackctlJackClient::~qjackctlJackClient
(this=0x7f0810, __in_chrg=<value optimized out>) at
qjackctlJackConnect.cpp:110
#12 0x00007ffff6b70ba6 in QTreeModel::clear (this=0x7b7750) at
itemviews/qtreewidget.cpp:166
#13 0x000000000042244e in qjackctlConnect::updateContents
(this=0x835a10, bClear=true) at qjackctlConnect.cpp:1823
#14 0x00000000004561ea in qjackctlConnectionsForm::stabilizeAudio
(this=0x7be660, bEnabled=false) at qjackctlConnectionsForm.cpp:684
#15 0x00000000004685bd in qjackctlMainForm::stopJackClient
(this=0x7fffffffdf10) at qjackctlMainForm.cpp:2572
#16 0x000000000046221b in qjackctlMainForm::stopJackServer
(this=0x7fffffffdf10) at qjackctlMainForm.cpp:1274
#17 0x0000000000462166 in qjackctlMainForm::stopJack
(this=0x7fffffffdf10) at qjackctlMainForm.cpp:1261
#18 0x00000000004b9922 in qjackctlMainForm::qt_metacall
(this=0x7fffffffdf10, _c=QMetaObject::InvokeMetaMethod, _id=1,
_a=0x7fffffffc900) at .moc/moc_qjackctlMainForm.cpp:125
#19 0x00007ffff60c018f in QMetaObject::activate (sender=0x775170,
m=<value optimized out>, local_signal_index=<value optimized out>,
argv=0x7fffffffc900) at kernel/qobject.cpp:3278
#20 0x00007ffff6c5c6e2 in QAbstractButton::clicked (this=<value
optimized out>, _t1=false) at
.moc/release-shared/moc_qabstractbutton.cpp:206
#21 0x00007ffff69a316b in QAbstractButtonPrivate::emitClicked
(this=<value optimized out>) at widgets/qabstractbutton.cpp:546
#22 0x00007ffff69a473b in QAbstractButtonPrivate::click (this=0x777060)
at widgets/qabstractbutton.cpp:539
#23 0x00007ffff69a49ac in QAbstractButton::mouseReleaseEvent
(this=0x775170, e=0x7fffffffd3c0) at widgets/qabstractbutton.cpp:1121
#24 0x00007ffff6a6117a in QToolButton::mouseReleaseEvent (this=<value
optimized out>, e=<value optimized out>) at widgets/qtoolbutton.cpp:721
#25 0x00007ffff663a75c in QWidget::event (this=0x775170,
event=0x7fffffffd3c0) at kernel/qwidget.cpp:8259
#26 0x00007ffff65e8d14 in QApplicationPrivate::notify_helper
(this=0x70c480, receiver=0x775170, e=0x7fffffffd3c0) at
kernel/qapplication.cpp:4462
#27 0x00007ffff65ee15a in QApplication::notify (this=<value optimized
out>, receiver=0x775170, e=0x7fffffffd3c0) at
kernel/qapplication.cpp:4023
#28 0x00007ffff60aac8c in QCoreApplication::notifyInternal
(this=0x7fffffffe320, receiver=0x775170, event=0x7fffffffd3c0) at
kernel/qcoreapplication.cpp:731
#29 0x00007ffff65e9d25 in sendEvent (receiver=0x775170,
event=0x7fffffffd3c0, alienWidget=0x775170, nativeWidget=0x7fffffffdf10,
buttonDown=0x7ffff70d0c38, lastMouseReceiver=..., spontaneous=true)
    at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#30 QApplicationPrivate::sendMouseEvent (receiver=0x775170,
event=0x7fffffffd3c0, alienWidget=0x775170, nativeWidget=0x7fffffffdf10,
buttonDown=0x7ffff70d0c38, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:3122
#31 0x00007ffff6668c88 in QETWidget::translateMouseEvent
(this=0x7fffffffdf10, event=<value optimized out>) at
kernel/qapplication_x11.cpp:4461
#32 0x00007ffff6667349 in QApplication::x11ProcessEvent
(this=0x7fffffffe320, event=0x7fffffffdb70) at
kernel/qapplication_x11.cpp:3587
#33 0x00007ffff668f832 in x11EventSourceDispatch (s=0x711560,
callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#34 0x00007ffff42af4a3 in g_main_context_dispatch () from
/lib/libglib-2.0.so.0
#35 0x00007ffff42afc80 in ?? () from /lib/libglib-2.0.so.0
#36 0x00007ffff42aff1d in g_main_context_iteration () from
/lib/libglib-2.0.so.0
#37 0x00007ffff60d5d8f in QEventDispatcherGlib::processEvents
(this=0x70d920, flags=<value optimized out>) at
kernel/qeventdispatcher_glib.cpp:422
#38 0x00007ffff668f4de in QGuiEventDispatcherGlib::processEvents
(this=<value optimized out>, flags=<value optimized out>) at
kernel/qguieventdispatcher_glib.cpp:204
#39 0x00007ffff60aa022 in QEventLoop::processEvents (this=<value
optimized out>, flags=...) at kernel/qeventloop.cpp:149
#40 0x00007ffff60aa26c in QEventLoop::exec (this=0x7fffffffde70,
flags=...) at kernel/qeventloop.cpp:201
#41 0x00007ffff60ae76b in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1008
#42 0x0000000000418438 in main (argc=1, argv=0x7fffffffe5b8) at
qjackctl.cpp:414


Steps to reproduce the bug:

   1. start qjackctl
   2. press start button (dummy driver is sufficient, but also works
      with alsa. If you want dummy, go to setup, first)
   3. press connect button
   4. select system on the left and system on the right, then, connect
   5. press stop button
   6. confirm termination
   7. segfault


The attached patch against qjackctl fixes the problem, though I don't
know if it's addressing the real issue at hand.


Cheers

-- 
mail: a...@thur.de      http://adi.thur.de      PGP/GPG: key via keyserver
diff --git a/src/qjackctlConnect.cpp b/src/qjackctlConnect.cpp
index 1604f5a..ce0e3c2 100644
--- a/src/qjackctlConnect.cpp
+++ b/src/qjackctlConnect.cpp
@@ -363,7 +364,12 @@ void qjackctlClientItem::setHilite ( bool bHilite )
 		m_iHilite--;
 
 	// Set the new color.
-	const QPalette& pal = QTreeWidgetItem::treeWidget()->palette();
+    QTreeWidget *widget = QTreeWidgetItem::treeWidget();
+    if (NULL == widget) {
+        return;
+    }
+
+	const QPalette& pal = widget->palette();
 	QTreeWidgetItem::setTextColor(0, m_iHilite > 0
 		? (pal.base().color().value() < 0x7f ? Qt::darkCyan : Qt::darkBlue)
 		: pal.text().color());
_______________________________________________
pkg-multimedia-maintainers mailing list
pkg-multimedia-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-multimedia-maintainers

Reply via email to