summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-11-06 02:17:00 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-11-06 02:17:00 (GMT)
commit8b01937c36632fca8774e90d22ce2aaeb2df883d (patch)
tree1f036bcd4d27744c7a4db995d07251ef0e7f3a45 /src/corelib
parent7f6deb2d42933f59adbebc95b872e670978de3e6 (diff)
parent0c95cffd81a21f63f647dccd79ae425d157e9758 (diff)
downloadQt-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.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib.cpp7
-rw-r--r--src/corelib/kernel/qobject.cpp4
-rw-r--r--src/corelib/thread/qthread_unix.cpp1
-rw-r--r--src/corelib/thread/qthread_win.cpp1
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();