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