|
|
|
@ -1101,20 +1101,20 @@ bool TQObject::event( TQEvent *e )
|
|
|
|
|
|| (d->ownThread == TQThread::currentThreadObject()))
|
|
|
|
|
#endif // TQT_THREAD_SUPPORT
|
|
|
|
|
{
|
|
|
|
|
TQSenderObjectList* sol;
|
|
|
|
|
TQObject* oldSender = 0;
|
|
|
|
|
sol = senderObjects;
|
|
|
|
|
TQObject *oldSender = nullptr;
|
|
|
|
|
TQSenderObjectList *sol = senderObjects;
|
|
|
|
|
if ( sol )
|
|
|
|
|
{
|
|
|
|
|
#ifdef TQT_THREAD_SUPPORT
|
|
|
|
|
sol->listMutex->lock();
|
|
|
|
|
sol->listMutex->lock();
|
|
|
|
|
#endif // TQT_THREAD_SUPPORT
|
|
|
|
|
if ( sol ) {
|
|
|
|
|
oldSender = sol->currentSender;
|
|
|
|
|
sol->ref();
|
|
|
|
|
sol->currentSender = metaEvent->sender();
|
|
|
|
|
}
|
|
|
|
|
#ifdef TQT_THREAD_SUPPORT
|
|
|
|
|
sol->listMutex->unlock();
|
|
|
|
|
sol->listMutex->unlock();
|
|
|
|
|
#endif // TQT_THREAD_SUPPORT
|
|
|
|
|
}
|
|
|
|
|
TQUObject *o = metaEvent->data();
|
|
|
|
|
if (metaEvent->type() == TQMetaCallEvent::MetaCallEmit) {
|
|
|
|
|
tqt_emit( metaEvent->id(), o );
|
|
|
|
@ -1122,25 +1122,31 @@ bool TQObject::event( TQEvent *e )
|
|
|
|
|
if (metaEvent->type() == TQMetaCallEvent::MetaCallInvoke) {
|
|
|
|
|
tqt_invoke( metaEvent->id(), o );
|
|
|
|
|
}
|
|
|
|
|
if ( sol )
|
|
|
|
|
{
|
|
|
|
|
#ifdef TQT_THREAD_SUPPORT
|
|
|
|
|
sol->listMutex->lock();
|
|
|
|
|
sol->listMutex->lock();
|
|
|
|
|
#endif // TQT_THREAD_SUPPORT
|
|
|
|
|
if (sol ) {
|
|
|
|
|
sol->currentSender = oldSender;
|
|
|
|
|
if ( sol->deref() ) {
|
|
|
|
|
if ( sol->deref() )
|
|
|
|
|
{
|
|
|
|
|
#ifdef TQT_THREAD_SUPPORT
|
|
|
|
|
sol->listMutex->unlock();
|
|
|
|
|
#endif // TQT_THREAD_SUPPORT
|
|
|
|
|
delete sol;
|
|
|
|
|
sol = NULL;
|
|
|
|
|
sol = nullptr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#ifdef TQT_THREAD_SUPPORT
|
|
|
|
|
if (sol) sol->listMutex->unlock();
|
|
|
|
|
if (sol)
|
|
|
|
|
{
|
|
|
|
|
sol->listMutex->unlock();
|
|
|
|
|
}
|
|
|
|
|
#endif // TQT_THREAD_SUPPORT
|
|
|
|
|
}
|
|
|
|
|
#ifdef TQT_THREAD_SUPPORT
|
|
|
|
|
else {
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
tqWarning("TQObject: Ignoring metacall event from non-owning thread");
|
|
|
|
|
}
|
|
|
|
|
#endif // TQT_THREAD_SUPPORT
|
|
|
|
|