Commit dda16d11 authored by ddkilzer@apple.com's avatar ddkilzer@apple.com
Browse files

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.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 22aa52a0
2013-08-23 David Kilzer <ddkilzer@apple.com>
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 <akling@apple.com> 2013-08-23 Andreas Kling <akling@apple.com>
   
RenderLayerCompositor::m_renderView should be a reference. RenderLayerCompositor::m_renderView should be a reference.
...@@ -41,7 +41,8 @@ ...@@ -41,7 +41,8 @@
#ifdef __OBJC__ #ifdef __OBJC__
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <AppKit/NSDragging.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 #else
typedef void* DragDataRef; typedef void* DragDataRef;
#endif #endif
......
...@@ -51,6 +51,7 @@ DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPo ...@@ -51,6 +51,7 @@ DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPo
, m_applicationFlags(flags) , m_applicationFlags(flags)
, m_pasteboardName([[m_platformDragData draggingPasteboard] name]) , m_pasteboardName([[m_platformDragData draggingPasteboard] name])
{ {
ASSERT([data conformsToProtocol:@protocol(NSDraggingInfo)]);
} }
DragData::DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragData::DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment