On terça-feira, 5 de fevereiro de 2013 23.11.10, Wolfgang Rohdewald wrote:
> all current sources from master branches (qt, kde)
>
> in kde, I am running
> kdesrc/build/kde/kdepim-runtime/resources$ ctest -V -V -R maildir-synctest
> which makes the binary synctest coredump deep in Qt. See backtrace below.
>
> I have been looking at the Qt source code and now I have a suspicion.
>
> void QDBusAbstractInterface::disconnectNotify(const char *signal)
> {
>     // someone disconnecting from one of our signals
>
> So this expects signal to be != 0, I assume. This matches the actual code
> which dereferences signal.
>
> OTOH in QObject::disconnect(), the signal argument may be 0 which
> means "all signals" according to
> http://doc.qt.digia.com/qt/qobject.html#disconnect
>
> And QObject::disconnect() does call
> QDBusAbstractInterface::disconnectNotify() with signal=0, see qobject.cpp
> line 2928:
>
>     if (res)
>         const_cast<QObject*>(sender)->disconnectNotify(signal ? (signal - 1)
> : 0);
>
>
> So - to me it seems that QDBusAbstractInterface should handle signal=0
> instead of segfaulting.

That is correct.

Please file a bug report or, better yet, a fix :-)
--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to