Fix To-Do in qstatemachine (use QObject::senderSignalIndex())
authorKent Hansen <kent.hansen@nokia.com>
Mon, 28 May 2012 09:21:04 +0000 (11:21 +0200)
committerQt by Nokia <qt-info@nokia.com>
Thu, 31 May 2012 23:21:40 +0000 (01:21 +0200)
Change-Id: Id8a541878918f27a34595ff297d0f41b79275a96
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
src/corelib/statemachine/qstatemachine.cpp

index fffe6de..21c3ab5 100644 (file)
@@ -2299,16 +2299,10 @@ int QSignalEventGenerator::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 
 void QSignalEventGenerator::execute(void **_a)
 {
-// ### in Qt 4.6 we can use QObject::senderSignalIndex()
-    QObjectPrivate *d = static_cast<QObjectPrivate *>(d_ptr.data());
-    int signalIndex = -1;
-    QObject *sender = this->sender();
-    if (sender && d->currentSender)
-        signalIndex = d->currentSender->signal;
-
+    int signalIndex = senderSignalIndex();
     Q_ASSERT(signalIndex != -1);
     QStateMachine *machine = qobject_cast<QStateMachine*>(parent());
-    QStateMachinePrivate::get(machine)->handleTransitionSignal(sender, signalIndex, _a);
+    QStateMachinePrivate::get(machine)->handleTransitionSignal(sender(), signalIndex, _a);
 }
 
 QSignalEventGenerator::QSignalEventGenerator(QStateMachine *parent)