equal
deleted
inserted
replaced
3262 continue; |
3262 continue; |
3263 } |
3263 } |
3264 |
3264 |
3265 const int method = c->method; |
3265 const int method = c->method; |
3266 QObjectPrivate::Sender currentSender; |
3266 QObjectPrivate::Sender currentSender; |
3267 currentSender.sender = sender; |
3267 const bool receiverInSameThread = currentThreadData == receiver->d_func()->threadData; |
3268 currentSender.signal = signal_absolute_index; |
|
3269 currentSender.ref = 1; |
|
3270 QObjectPrivate::Sender *previousSender = 0; |
3268 QObjectPrivate::Sender *previousSender = 0; |
3271 if (currentThreadData == receiver->d_func()->threadData) |
3269 if (receiverInSameThread) { |
|
3270 currentSender.sender = sender; |
|
3271 currentSender.signal = signal_absolute_index; |
|
3272 currentSender.ref = 1; |
3272 previousSender = QObjectPrivate::setCurrentSender(receiver, ¤tSender); |
3273 previousSender = QObjectPrivate::setCurrentSender(receiver, ¤tSender); |
|
3274 } |
3273 locker.unlock(); |
3275 locker.unlock(); |
3274 |
3276 |
3275 if (qt_signal_spy_callback_set.slot_begin_callback != 0) { |
3277 if (qt_signal_spy_callback_set.slot_begin_callback != 0) { |
3276 qt_signal_spy_callback_set.slot_begin_callback(receiver, |
3278 qt_signal_spy_callback_set.slot_begin_callback(receiver, |
3277 method, |
3279 method, |
3283 #else |
3285 #else |
3284 QT_TRY { |
3286 QT_TRY { |
3285 metacall(receiver, QMetaObject::InvokeMetaMethod, method, argv ? argv : empty_argv); |
3287 metacall(receiver, QMetaObject::InvokeMetaMethod, method, argv ? argv : empty_argv); |
3286 } QT_CATCH(...) { |
3288 } QT_CATCH(...) { |
3287 locker.relock(); |
3289 locker.relock(); |
3288 |
3290 if (receiverInSameThread) |
3289 QObjectPrivate::resetCurrentSender(receiver, ¤tSender, previousSender); |
3291 QObjectPrivate::resetCurrentSender(receiver, ¤tSender, previousSender); |
3290 |
3292 |
3291 --connectionLists->inUse; |
3293 --connectionLists->inUse; |
3292 Q_ASSERT(connectionLists->inUse >= 0); |
3294 Q_ASSERT(connectionLists->inUse >= 0); |
3293 if (connectionLists->orphaned && !connectionLists->inUse) |
3295 if (connectionLists->orphaned && !connectionLists->inUse) |
3294 delete connectionLists; |
3296 delete connectionLists; |
3299 if (qt_signal_spy_callback_set.slot_end_callback != 0) |
3301 if (qt_signal_spy_callback_set.slot_end_callback != 0) |
3300 qt_signal_spy_callback_set.slot_end_callback(receiver, method); |
3302 qt_signal_spy_callback_set.slot_end_callback(receiver, method); |
3301 |
3303 |
3302 locker.relock(); |
3304 locker.relock(); |
3303 |
3305 |
3304 QObjectPrivate::resetCurrentSender(receiver, ¤tSender, previousSender); |
3306 if (receiverInSameThread) |
|
3307 QObjectPrivate::resetCurrentSender(receiver, ¤tSender, previousSender); |
3305 |
3308 |
3306 if (connectionLists->orphaned) |
3309 if (connectionLists->orphaned) |
3307 break; |
3310 break; |
3308 } while (c != last && (c = c->nextConnectionList) != 0); |
3311 } while (c != last && (c = c->nextConnectionList) != 0); |
3309 |
3312 |