[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

mrowe at apple.com mrowe at apple.com
Wed Dec 22 12:40:37 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit f317930fcff14f064f5979201ac0369c1f1352ca
Author: mrowe at apple.com <mrowe at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Aug 27 00:33:54 2010 +0000

    <rdar://problem/8339008> WebCore's MediaPlayerPrivateQTKit.mm fails to build with clang.
    
    Reviewed by Sam Weinig.
    
    * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
    (WebCore::mainThreadSetNeedsDisplay): Remove some ambiguity in the return type of -delegate.
    Since the message was being sent to a receiver of type id the compiler cannot accurately
    determine the return type. Typically this would be resolved by using a more specific type
    for the receiver. However, due to lazy loading shenanigans that we play with QTKit we're
    unable to directly cast to the relevant type (QTMovieView*). Instead we fake up an interface
    with the correct type of the method we care about (-delegate) and cast to that type instead.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66157 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index b80e9f4..c34e022 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2010-08-26  Mark Rowe  <mrowe at apple.com>
+
+        Reviewed by Sam Weinig.
+
+        <rdar://problem/8339008> WebCore's MediaPlayerPrivateQTKit.mm fails to build with clang.
+
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        (WebCore::mainThreadSetNeedsDisplay): Remove some ambiguity in the return type of -delegate.
+        Since the message was being sent to a receiver of type id the compiler cannot accurately
+        determine the return type. Typically this would be resolved by using a more specific type
+        for the receiver. However, due to lazy loading shenanigans that we play with QTKit we're
+        unable to directly cast to the relevant type (QTMovieView*). Instead we fake up an interface
+        with the correct type of the method we care about (-delegate) and cast to that type instead.
+
 2010-08-26  Andy Estes  <aestes at apple.com>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
index 435e56e..8cd407b 100644
--- a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
+++ b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
@@ -153,6 +153,13 @@ enum {
 };
 #endif
 
+ at interface FakeQTMovieView : NSObject
+{
+}
+
+- (WebCoreMovieObserver *)delegate;
+ at end
+
 using namespace WebCore;
 using namespace std;
 
@@ -315,11 +322,12 @@ void MediaPlayerPrivate::createQTMovie(NSURL *url, NSDictionary *movieAttributes
 
 static void mainThreadSetNeedsDisplay(id self, SEL)
 {
-    id movieView = [self superview];
-    ASSERT(!movieView || [movieView isKindOfClass:[QTMovieView class]]);
-    if (!movieView || ![movieView isKindOfClass:[QTMovieView class]])
+    id view = [self superview];
+    ASSERT(!view || [view isKindOfClass:[QTMovieView class]]);
+    if (!view || ![view isKindOfClass:[QTMovieView class]])
         return;
 
+    FakeQTMovieView *movieView = static_cast<FakeQTMovieView *>(view);
     WebCoreMovieObserver* delegate = [movieView delegate];
     ASSERT(!delegate || [delegate isKindOfClass:[WebCoreMovieObserver class]]);
     if (!delegate || ![delegate isKindOfClass:[WebCoreMovieObserver class]])

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list