Title: [154493] trunk/Source/WebCore
Revision
154493
Author
[email protected]
Date
2013-08-23 09:56:31 -0700 (Fri, 23 Aug 2013)

Log Message

WebCore fails to link due to changes in Objective-C++ ABI in trunk clang
<http://webkit.org/b/120183>
<rdar://problem/14764114>

Reviewed by Eric Carlson.

The trunk version of clang made an ABI change for Objective-C++
parameters that caused WebCore to fail to link.  The short-term
fix is to change the parameter type from id<protocol> to just id
and add an ASSERT that the parameter still conforms to the
protocol.

* platform/DragData.h:
(DragDataRef): Change typedef from id<NSDragInfo> to id.
* platform/mac/DragDataMac.mm:
(WebCore::DragData::DragData): Add ASSERT that checks that the
DragDataRef object implements the NSDragInfo protocol.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (154492 => 154493)


--- trunk/Source/WebCore/ChangeLog	2013-08-23 16:56:17 UTC (rev 154492)
+++ trunk/Source/WebCore/ChangeLog	2013-08-23 16:56:31 UTC (rev 154493)
@@ -1,3 +1,23 @@
+2013-08-23  David Kilzer  <[email protected]>
+
+        WebCore fails to link due to changes in Objective-C++ ABI in trunk clang
+        <http://webkit.org/b/120183>
+        <rdar://problem/14764114>
+
+        Reviewed by Eric Carlson.
+
+        The trunk version of clang made an ABI change for Objective-C++
+        parameters that caused WebCore to fail to link.  The short-term
+        fix is to change the parameter type from id<protocol> to just id
+        and add an ASSERT that the parameter still conforms to the
+        protocol.
+
+        * platform/DragData.h:
+        (DragDataRef): Change typedef from id<NSDragInfo> to id.
+        * platform/mac/DragDataMac.mm:
+        (WebCore::DragData::DragData): Add ASSERT that checks that the
+        DragDataRef object implements the NSDragInfo protocol.
+
 2013-08-23  Andreas Kling  <[email protected]>
 
         RenderLayerCompositor::m_renderView should be a reference.

Modified: trunk/Source/WebCore/platform/DragData.h (154492 => 154493)


--- trunk/Source/WebCore/platform/DragData.h	2013-08-23 16:56:17 UTC (rev 154492)
+++ trunk/Source/WebCore/platform/DragData.h	2013-08-23 16:56:31 UTC (rev 154493)
@@ -41,7 +41,8 @@
 #ifdef __OBJC__ 
 #import <Foundation/Foundation.h>
 #import <AppKit/NSDragging.h>
-typedef id <NSDraggingInfo> DragDataRef;
+// Use id instead of id <NSDraggingInfo> here due to clang ABI change. See <rdar://problem/14764114>.
+typedef id DragDataRef;
 #else
 typedef void* DragDataRef;
 #endif

Modified: trunk/Source/WebCore/platform/mac/DragDataMac.mm (154492 => 154493)


--- trunk/Source/WebCore/platform/mac/DragDataMac.mm	2013-08-23 16:56:17 UTC (rev 154492)
+++ trunk/Source/WebCore/platform/mac/DragDataMac.mm	2013-08-23 16:56:31 UTC (rev 154493)
@@ -51,6 +51,7 @@
     , m_applicationFlags(flags)
     , m_pasteboardName([[m_platformDragData draggingPasteboard] name])
 {
+    ASSERT([data conformsToProtocol:@protocol(NSDraggingInfo)]);
 }
 
 DragData::DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to