Modified: trunk/Source/WebKit2/ChangeLog (104723 => 104724)
--- trunk/Source/WebKit2/ChangeLog 2012-01-11 18:36:40 UTC (rev 104723)
+++ trunk/Source/WebKit2/ChangeLog 2012-01-11 18:59:20 UTC (rev 104724)
@@ -1,3 +1,14 @@
+2012-01-11 Anders Carlsson <[email protected]>
+
+ Fix the Mac GCC build.
+
+ Work around the fact that GCC doesn't work very well with Blocks and C++ objets.
+
+ * UIProcess/mac/WebProcessProxyMac.mm:
+ (WebKit::dispatchFunctionOnQueue):
+ (WebKit::WebProcessProxy::secItemRequest):
+ (WebKit::WebProcessProxy::secKeychainItemRequest):
+
2012-01-11 No'am Rosenthal <[email protected]>
[Qt][WK2] Directly-composited images sometimes appear with a wrong geometry
Modified: trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm (104723 => 104724)
--- trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm 2012-01-11 18:36:40 UTC (rev 104723)
+++ trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm 2012-01-11 18:59:20 UTC (rev 104724)
@@ -74,12 +74,25 @@
connection->send(Messages::WebProcess::SecItemResponse(requestID, response), 0);
}
+static void dispatchFunctionOnQueue(dispatch_queue_t queue, const Function<void ()>& function)
+{
+#if COMPILER(CLANG)
+ dispatch_async(queue, function);
+#else
+ Function<void ()>* functionPtr = new Function<void ()>(function);
+ dispatch_async(queue, ^{
+ (*functionPtr)();
+ delete functionPtr;
+ });
+#endif
+}
+
void WebProcessProxy::secItemRequest(CoreIPC::Connection* connection, uint64_t requestID, const SecItemRequestData& request)
{
// Since we don't want the connection work queue to be held up, we do all
// keychain interaction work on a global dispatch queue.
dispatch_queue_t keychainWorkQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
- dispatch_async(keychainWorkQueue, bind(handleSecItemRequest, RefPtr<CoreIPC::Connection>(connection), requestID, request));
+ dispatchFunctionOnQueue(keychainWorkQueue, bind(handleSecItemRequest, RefPtr<CoreIPC::Connection>(connection), requestID, request));
}
static void handleSecKeychainItemRequest(CoreIPC::Connection* connection, uint64_t requestID, const SecKeychainItemRequestData& request)
@@ -128,7 +141,7 @@
// Since we don't want the connection work queue to be held up, we do all
// keychain interaction work on a global dispatch queue.
dispatch_queue_t keychainWorkQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
- dispatch_async(keychainWorkQueue, bind(handleSecKeychainItemRequest, RefPtr<CoreIPC::Connection>(connection), requestID, request));
+ dispatchFunctionOnQueue(keychainWorkQueue, bind(handleSecKeychainItemRequest, RefPtr<CoreIPC::Connection>(connection), requestID, request));
}
bool WebProcessProxy::fullKeyboardAccessEnabled()