diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-06 02:17:00 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-11-06 02:17:00 (GMT) |
commit | 8b01937c36632fca8774e90d22ce2aaeb2df883d (patch) | |
tree | 1f036bcd4d27744c7a4db995d07251ef0e7f3a45 /src/corelib | |
parent | 7f6deb2d42933f59adbebc95b872e670978de3e6 (diff) | |
parent | 0c95cffd81a21f63f647dccd79ae425d157e9758 (diff) | |
download | Qt-8b01937c36632fca8774e90d22ce2aaeb2df883d.zip Qt-8b01937c36632fca8774e90d22ce2aaeb2df883d.tar.gz Qt-8b01937c36632fca8774e90d22ce2aaeb2df883d.tar.bz2 |
Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (45 commits)
mkspecs: Move QMAKE_CC and QMAKE_CXX from gcc-base.conf to g++-base.conf
mkspecs: Make linux-x86-openkode-g++ not include g++.conf directly
mkspecs: Include gcc-base-unix.conf from g++.conf to match old behavior
configure: Deal with multiple redefinitions of qmake variables
Split QScriptValue::call autotest into smaller tests.
Optimize and clean up QClipData::fixup()
There is no predefined qmake x11 scope for x11 builds.
Refactor tst_QScriptContext::throwError test.
Fixed whitespace.
Don't use scopes in mkspecs as configure does not support them
Fixed destination path for the S60 feedback plugin.
Don't put Objective-C sources in SOURCES
Fix regression in tst_maketestselftest::naming_convention.
Split monolithic QScriptEngine autotests into smaller tests
Add SunSpider and V8 benchmarks to benchmarks/script.pro
Push and pop the thread-default context for the current thread
Silence preprocessor warnings about __TARGET_ARCH_ARM not being defined.
Import SunSpider benchmarks for QtScript
Import V8 benchmarks for QtScript
Add more microbenchmarks for QScriptValue
...
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/arch/qatomic_arm.h | 2 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_glib.cpp | 7 | ||||
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 4 | ||||
-rw-r--r-- | src/corelib/thread/qthread_unix.cpp | 1 | ||||
-rw-r--r-- | src/corelib/thread/qthread_win.cpp | 1 |
5 files changed, 11 insertions, 4 deletions
diff --git a/src/corelib/arch/qatomic_arm.h b/src/corelib/arch/qatomic_arm.h index 1c1c8a5..0513af2 100644 --- a/src/corelib/arch/qatomic_arm.h +++ b/src/corelib/arch/qatomic_arm.h @@ -59,7 +59,7 @@ QT_END_INCLUDE_HEADER || defined(__ARM_ARCH_6K__) \ || defined(__ARM_ARCH_6ZK__) \ || defined(__ARM_ARCH_6M__) \ - || (__TARGET_ARCH_ARM-0 >= 6) + || (defined(__TARGET_ARCH_ARM) && (__TARGET_ARCH_ARM-0 >= 6)) # define QT_ARCH_ARMV6 QT_BEGIN_INCLUDE_HEADER # include "QtCore/qatomic_armv6.h" diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp index e5136f9..8d25780 100644 --- a/src/corelib/kernel/qeventdispatcher_glib.cpp +++ b/src/corelib/kernel/qeventdispatcher_glib.cpp @@ -313,6 +313,10 @@ QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(GMainContext *context) } } +#if GLIB_CHECK_VERSION (2, 22, 0) + g_main_context_push_thread_default (mainContext); +#endif + // setup post event source postEventSource = reinterpret_cast<GPostEventSource *>(g_source_new(&postEventSourceFuncs, sizeof(GPostEventSource))); @@ -391,6 +395,9 @@ QEventDispatcherGlib::~QEventDispatcherGlib() d->postEventSource = 0; Q_ASSERT(d->mainContext != 0); +#if GLIB_CHECK_VERSION (2, 22, 0) + g_main_context_pop_thread_default (d->mainContext); +#endif g_main_context_unref(d->mainContext); d->mainContext = 0; } diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 573bb50..7fe9c52 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -3508,9 +3508,7 @@ void QMetaObject::activate(QObject *sender, const QMetaObject *m, int local_sign // determine if this connection should be sent immediately or // put into the event queue - if ((c->connectionType == Qt::AutoConnection - && (!receiverInSameThread - || receiver->d_func()->threadData != sender->d_func()->threadData)) + if ((c->connectionType == Qt::AutoConnection && !receiverInSameThread) || (c->connectionType == Qt::QueuedConnection)) { queued_activate(sender, signal_absolute_index, c, argv ? argv : empty_argv); continue; diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index daf1a93..f508c0a 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -345,6 +345,7 @@ void QThreadPrivate::finish(void *arg) emit thr->terminated(); d->terminated = false; emit thr->finished(); + QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); if (d->data->eventDispatcher) { d->data->eventDispatcher->closingDown(); diff --git a/src/corelib/thread/qthread_win.cpp b/src/corelib/thread/qthread_win.cpp index f0cbe8d..4a967ed 100644 --- a/src/corelib/thread/qthread_win.cpp +++ b/src/corelib/thread/qthread_win.cpp @@ -332,6 +332,7 @@ void QThreadPrivate::finish(void *arg, bool lockAnyway) emit thr->terminated(); d->terminated = false; emit thr->finished(); + QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); if (d->data->eventDispatcher) { d->data->eventDispatcher->closingDown(); |