summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-11-22 18:18:10 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-25 20:39:16 +0100
commita7084bff6a81db6488e6f517988b196ac0a951e3 (patch)
treebf6f66365826ff3f8dcb1bfd898233766100098c /Source
parentfb02f6e0e4625d2077c45a1bb7aea95c66a9cbb7 (diff)
WebKitQML examples does not work on Mac
A combination of a flawed GCC 4.2 implementation and a compiler misdetection that meant it was also used for clang caused WebKitQML to crash on startup. Task-number: QTBUG-35040 Change-Id: I77534c0e9974a79e7487d5211b1374b250219d49 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp b/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp
index be2a42b48..cdadc9c45 100644
--- a/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp
+++ b/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp
@@ -113,9 +113,10 @@ void Connection::platformInitialize(Identifier identifier)
static dispatch_source_t createDataAvailableSource(mach_port_t receivePort, WorkQueue* workQueue, const Function<void()>& function)
{
dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_MACH_RECV, receivePort, 0, workQueue->dispatchQueue());
-#if COMPILER(GCC)
+#if COMPILER(GCC) && !COMPILER(CLANG)
+ Function<void()> functionCopy = function;
dispatch_source_set_event_handler(source, ^{
- function();
+ functionCopy();
});
#else
dispatch_source_set_event_handler(source, function);
@@ -296,7 +297,7 @@ bool Connection::sendOutgoingMessage(PassOwnPtr<MessageEncoder> encoder)
void Connection::initializeDeadNameSource()
{
m_deadNameSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_MACH_SEND, m_sendPort, 0, m_connectionQueue->dispatchQueue());
-#if COMPILER(GCC)
+#if COMPILER(GCC) && !COMPILER(CLANG)
dispatch_source_set_event_handler(m_deadNameSource, ^{
connectionDidClose();
});