<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[176924] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/176924">176924</a></dd>
<dt>Author</dt> <dd>mitz@apple.com</dd>
<dt>Date</dt> <dd>2014-12-07 09:28:01 -0800 (Sun, 07 Dec 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Introduce and deploy a function that allocates and returns an instance of a soft-linked class
https://bugs.webkit.org/show_bug.cgi?id=139348

Reviewed by Anders Carlsson.

In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
avoiding the ambiguity.

Source/WebCore:

* editing/mac/DataDetection.mm:
(WebCore::DataDetection::detectItemAroundHitTestResult):
* platform/audio/ios/MediaSessionManagerIOS.mm:
(-[WebMediaSessionHelper allocateVolumeView]):
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
* platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::createMix):
* platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::abort):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):

* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac): Cast the result of +alloc to an instance of the
expected class.

* platform/graphics/mac/FontMac.mm:
(WebCore::showLetterpressedGlyphsWithAdvances):
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::createQTMovie):
(WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
* platform/graphics/mac/PDFDocumentImageMac.mm:
(WebCore::PDFDocumentImage::createPDFDocument):
* platform/ios/PlatformSpeechSynthesizerIOS.mm:
(SOFT_LINK_CONSTANT):
(-[WebSpeechSynthesisWrapper speakUtterance:]):
* platform/ios/WebCoreMotionManager.mm:
(-[WebCoreMotionManager initializeOnMainThread]):
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerController init]):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::ContentFilter):

* platform/mac/SoftLinking.h: Added alloc##className##instance().

* platform/mac/WebVideoFullscreenController.mm:
(-[WebVideoFullscreenController setVideoElement:]):
* platform/mediastream/mac/AVAudioCaptureSource.mm:
(WebCore::AVAudioCaptureSource::setupCaptureSession):
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):
* platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::setupSession):
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setupCaptureSession):
* platform/network/ios/QuickLook.mm:
(WebCore::registerQLPreviewConverterIfNeeded):
(WebCore::QuickLookHandle::QuickLookHandle):

Source/WebKit/ios:

* Misc/WebGeolocationCoreLocationProvider.mm:
(-[WebGeolocationCoreLocationProvider createLocationManager]):

Source/WebKit/mac:

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _defaultMenuItemsForDataDetectableLink]):

Source/WebKit2:

* UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
(-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]):
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
(-[WKAirPlayRoutePicker show:fromRect:]):
* UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[_WKVideoFileUploadItem displayImage]):
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
* WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::clone):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreeditingmacDataDetectionmm">trunk/Source/WebCore/editing/mac/DataDetection.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformaudioiosMediaSessionManagerIOSmm">trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationAudioSourceProviderAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcInbandTextTrackPrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcInbandTextTrackPrivateLegacyAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscamacPlatformCALayerMacmm">trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacFontMacmm">trunk/Source/WebCore/platform/graphics/mac/FontMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKitmm">trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacPDFDocumentImageMacmm">trunk/Source/WebCore/platform/graphics/mac/PDFDocumentImageMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosPlatformSpeechSynthesizerIOSmm">trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebCoreMotionManagermm">trunk/Source/WebCore/platform/ios/WebCoreMotionManager.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm">trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacContentFilterMacmm">trunk/Source/WebCore/platform/mac/ContentFilterMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacSoftLinkingh">trunk/Source/WebCore/platform/mac/SoftLinking.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmacWebVideoFullscreenControllermm">trunk/Source/WebCore/platform/mac/WebVideoFullscreenController.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVAudioCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagermm">trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVMediaCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkiosQuickLookmm">trunk/Source/WebCore/platform/network/ios/QuickLook.mm</a></li>
<li><a href="#trunkSourceWebKitiosChangeLog">trunk/Source/WebKit/ios/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitiosMiscWebGeolocationCoreLocationProvidermm">trunk/Source/WebKit/ios/Misc/WebGeolocationCoreLocationProvider.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebActionMenuControllermm">trunk/Source/WebKit/mac/WebView/WebActionMenuController.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosformsWKAirPlayRoutePickermm">trunk/Source/WebKit2/UIProcess/ios/forms/WKAirPlayRoutePicker.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosformsWKFileUploadPanelmm">trunk/Source/WebKit2/UIProcess/ios/forms/WKFileUploadPanel.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWKActionMenuControllermm">trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteCustommm">trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/ChangeLog        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -1,3 +1,78 @@
</span><ins>+2014-12-07  Dan Bernstein  &lt;mitz@apple.com&gt;
+
+        Introduce and deploy a function that allocates and returns an instance of a soft-linked class
+        https://bugs.webkit.org/show_bug.cgi?id=139348
+
+        Reviewed by Anders Carlsson.
+
+        In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
+        picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
+        to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
+        doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
+        avoiding the ambiguity.
+
+        * editing/mac/DataDetection.mm:
+        (WebCore::DataDetection::detectItemAroundHitTestResult):
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (-[WebMediaSessionHelper allocateVolumeView]):
+        (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
+        * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
+        (WebCore::AudioSourceProviderAVFObjC::createMix):
+        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
+        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
+        (WebCore::SourceBufferPrivateAVFObjC::abort):
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
+
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        (PlatformCALayerMac::PlatformCALayerMac): Cast the result of +alloc to an instance of the
+        expected class.
+
+        * platform/graphics/mac/FontMac.mm:
+        (WebCore::showLetterpressedGlyphsWithAdvances):
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
+        (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
+        * platform/graphics/mac/PDFDocumentImageMac.mm:
+        (WebCore::PDFDocumentImage::createPDFDocument):
+        * platform/ios/PlatformSpeechSynthesizerIOS.mm:
+        (SOFT_LINK_CONSTANT):
+        (-[WebSpeechSynthesisWrapper speakUtterance:]):
+        * platform/ios/WebCoreMotionManager.mm:
+        (-[WebCoreMotionManager initializeOnMainThread]):
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+        (-[WebAVPlayerController init]):
+        (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
+        * platform/mac/ContentFilterMac.mm:
+        (WebCore::ContentFilter::ContentFilter):
+
+        * platform/mac/SoftLinking.h: Added alloc##className##instance().
+
+        * platform/mac/WebVideoFullscreenController.mm:
+        (-[WebVideoFullscreenController setVideoElement:]):
+        * platform/mediastream/mac/AVAudioCaptureSource.mm:
+        (WebCore::AVAudioCaptureSource::setupCaptureSession):
+        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
+        (WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType):
+        * platform/mediastream/mac/AVMediaCaptureSource.mm:
+        (WebCore::AVMediaCaptureSource::setupSession):
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::setupCaptureSession):
+        * platform/network/ios/QuickLook.mm:
+        (WebCore::registerQLPreviewConverterIfNeeded):
+        (WebCore::QuickLookHandle::QuickLookHandle):
+
</ins><span class="cx"> 2014-12-07  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Add Since tags to GObject DOM bindings documentation
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacDataDetectionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/DataDetection.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/DataDetection.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/editing/mac/DataDetection.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx">     if (!mainResult)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    RetainPtr&lt;DDActionContext&gt; actionContext = adoptNS([[getDDActionContextClass() alloc] init]);
</del><ins>+    RetainPtr&lt;DDActionContext&gt; actionContext = adoptNS([allocDDActionContextInstance() init]);
</ins><span class="cx">     [actionContext setAllResults:@[ (id)mainResult ]];
</span><span class="cx">     [actionContext setMainResult:mainResult];
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformaudioiosMediaSessionManagerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -241,7 +241,7 @@
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    _volumeView = adoptNS([[getMPVolumeViewClass() alloc] init]);
</del><ins>+    _volumeView = adoptNS([allocMPVolumeViewInstance() init]);
</ins><span class="cx">     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(wirelessRoutesAvailableDidChange:) name:MPVolumeViewWirelessRoutesAvailableDidChangeNotification object:_volumeView.get()];
</span><span class="cx">     
</span><span class="cx"> }
</span><span class="lines">@@ -324,7 +324,7 @@
</span><span class="cx">         if (strongSelf-&gt;_airPlayPresenceRoutingController)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        strongSelf-&gt;_airPlayPresenceRoutingController = adoptNS([[getMPAVRoutingControllerClass() alloc] initWithName:@&quot;WebCore - HTML media element checking for AirPlay route presence&quot;]);
</del><ins>+        strongSelf-&gt;_airPlayPresenceRoutingController = adoptNS([allocMPAVRoutingControllerInstance() initWithName:@&quot;WebCore - HTML media element checking for AirPlay route presence&quot;]);
</ins><span class="cx">         [strongSelf-&gt;_airPlayPresenceRoutingController setDiscoveryMode:MPRouteDiscoveryModePresence];
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationAudioSourceProviderAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -184,7 +184,7 @@
</span><span class="cx">     ASSERT(m_avPlayerItem);
</span><span class="cx">     ASSERT(m_client);
</span><span class="cx"> 
</span><del>-    m_avAudioMix = adoptNS([(AVMutableAudioMix *)[getAVMutableAudioMixClass() alloc] init]);
</del><ins>+    m_avAudioMix = adoptNS([allocAVMutableAudioMixInstance() init]);
</ins><span class="cx"> 
</span><span class="cx">     MTAudioProcessingTapCallbacks callbacks = {
</span><span class="cx">         0,
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx">     ASSERT(tap);
</span><span class="cx">     ASSERT(m_tap == tap);
</span><span class="cx"> 
</span><del>-    RetainPtr&lt;AVMutableAudioMixInputParameters&gt; parameters = adoptNS([(AVMutableAudioMixInputParameters *)[getAVMutableAudioMixInputParametersClass() alloc] init]);
</del><ins>+    RetainPtr&lt;AVMutableAudioMixInputParameters&gt; parameters = adoptNS([allocAVMutableAudioMixInputParametersInstance() init]);
</ins><span class="cx">     [parameters setAudioTapProcessor:m_tap.get()];
</span><span class="cx"> 
</span><span class="cx">     CMPersistentTrackID firstEnabledAudioTrackID = kCMPersistentTrackID_Invalid;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcCDMSessionAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -38,14 +38,14 @@
</span><span class="cx"> #import &lt;AVFoundation/AVFoundation.h&gt;
</span><span class="cx"> #import &lt;objc/objc-runtime.h&gt;
</span><span class="cx"> 
</span><del>-namespace WebCore {
-
</del><span class="cx"> SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVURLAsset)
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVAssetResourceLoadingRequest)
</span><span class="cx"> #define AVURLAsset getAVURLAssetClass()
</span><span class="cx"> #define AVAssetResourceLoadingRequest getAVAssetResourceLoadingRequest()
</span><span class="cx"> 
</span><ins>+namespace WebCore {
+
</ins><span class="cx"> CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC(MediaPlayerPrivateAVFoundationObjC* parent)
</span><span class="cx">     : m_parent(parent)
</span><span class="cx">     , m_client(nullptr)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcInbandTextTrackPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -40,9 +40,6 @@
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)
</span><span class="cx"> 
</span><del>-#define AVPlayer getAVPlayerClass()
-#define AVPlayerItem getAVPlayerItemClass()
-
</del><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVPlayer)
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVPlayerItem)
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVMetadataItem)
</span><span class="lines">@@ -65,6 +62,8 @@
</span><span class="cx"> SOFT_LINK_POINTER(AVFoundation, AVMediaCharacteristicIsMainProgramContent, NSString *)
</span><span class="cx"> SOFT_LINK_POINTER(AVFoundation, AVMediaCharacteristicEasyToRead, NSString *)
</span><span class="cx"> 
</span><ins>+#define AVPlayer getAVPlayerClass()
+#define AVPlayerItem getAVPlayerItemClass()
</ins><span class="cx"> #define AVMetadataItem getAVMetadataItemClass()
</span><span class="cx"> #define AVPlayerItemLegibleOutput getAVPlayerItemLegibleOutputClass()
</span><span class="cx"> #define AVMediaCharacteristicLegible getAVMediaCharacteristicLegible()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcInbandTextTrackPrivateLegacyAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -37,7 +37,6 @@
</span><span class="cx"> #import &lt;objc/runtime.h&gt;
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)
</span><del>-#define AVPlayerItem getAVPlayerItemClass()
</del><span class="cx"> 
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVPlayerItem)
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVMetadataItem)
</span><span class="lines">@@ -48,6 +47,7 @@
</span><span class="cx"> SOFT_LINK_POINTER(AVFoundation, AVMetadataCommonKeyTitle, NSString *)
</span><span class="cx"> SOFT_LINK_POINTER(AVFoundation, AVMetadataKeySpaceCommon, NSString *)
</span><span class="cx"> 
</span><ins>+#define AVPlayerItem getAVPlayerItemClass()
</ins><span class="cx"> #define AVMetadataItem getAVMetadataItemClass()
</span><span class="cx"> #define AVMediaCharacteristicLegible getAVMediaCharacteristicLegible()
</span><span class="cx"> #define AVMetadataCommonKeyTitle getAVMetadataCommonKeyTitle()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -613,7 +613,7 @@
</span><span class="cx">     if (!m_avPlayer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_videoLayer = adoptNS([[AVPlayerLayer alloc] init]);
</del><ins>+    m_videoLayer = adoptNS([allocAVPlayerLayerInstance() init]);
</ins><span class="cx">     [m_videoLayer setPlayer:m_avPlayer.get()];
</span><span class="cx">     [m_videoLayer setBackgroundColor:cachedCGColor(Color::black, ColorSpaceDeviceRGB)];
</span><span class="cx"> #ifndef NDEBUG
</span><span class="lines">@@ -838,7 +838,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     NSURL *cocoaURL = canonicalURL(url);
</span><del>-    m_avAsset = adoptNS([[AVURLAsset alloc] initWithURL:cocoaURL options:options.get()]);
</del><ins>+    m_avAsset = adoptNS([allocAVURLAssetInstance() initWithURL:cocoaURL options:options.get()]);
</ins><span class="cx"> 
</span><span class="cx"> #if HAVE(AVFOUNDATION_LOADER_DELEGATE)
</span><span class="cx">     [[m_avAsset.get() resourceLoader] setDelegate:m_loaderDelegate.get() queue:globalLoaderDelegateQueue()];
</span><span class="lines">@@ -875,7 +875,7 @@
</span><span class="cx"> 
</span><span class="cx">     setDelayCallbacks(true);
</span><span class="cx"> 
</span><del>-    m_avPlayer = adoptNS([[AVPlayer alloc] init]);
</del><ins>+    m_avPlayer = adoptNS([allocAVPlayerInstance() init]);
</ins><span class="cx">     [m_avPlayer.get() addObserver:m_objcObserver.get() forKeyPath:@&quot;rate&quot; options:NSKeyValueObservingOptionNew context:(void *)MediaPlayerAVFoundationObservationContextPlayer];
</span><span class="cx"> #if ENABLE(IOS_AIRPLAY)
</span><span class="cx">     [m_avPlayer.get() addObserver:m_objcObserver.get() forKeyPath:@&quot;externalPlaybackActive&quot; options:NSKeyValueObservingOptionNew context:(void *)MediaPlayerAVFoundationObservationContextPlayer];
</span><span class="lines">@@ -909,7 +909,7 @@
</span><span class="cx">     setDelayCallbacks(true);
</span><span class="cx"> 
</span><span class="cx">     // Create the player item so we can load media data. 
</span><del>-    m_avPlayerItem = adoptNS([[AVPlayerItem alloc] initWithAsset:m_avAsset.get()]);
</del><ins>+    m_avPlayerItem = adoptNS([allocAVPlayerItemInstance() initWithAsset:m_avAsset.get()]);
</ins><span class="cx"> 
</span><span class="cx">     [[NSNotificationCenter defaultCenter] addObserver:m_objcObserver.get() selector:@selector(didEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:m_avPlayerItem.get()];
</span><span class="cx"> 
</span><span class="lines">@@ -930,7 +930,7 @@
</span><span class="cx">     const NSTimeInterval legibleOutputAdvanceInterval = 2;
</span><span class="cx"> 
</span><span class="cx">     RetainPtr&lt;NSArray&gt; subtypes = adoptNS([[NSArray alloc] initWithObjects:[NSNumber numberWithUnsignedInt:kCMSubtitleFormatType_WebVTT], nil]);
</span><del>-    m_legibleOutput = adoptNS([[AVPlayerItemLegibleOutput alloc] initWithMediaSubtypesForNativeRepresentation:subtypes.get()]);
</del><ins>+    m_legibleOutput = adoptNS([allocAVPlayerItemLegibleOutputInstance() initWithMediaSubtypesForNativeRepresentation:subtypes.get()]);
</ins><span class="cx">     [m_legibleOutput.get() setSuppressesPlayerRendering:YES];
</span><span class="cx"> 
</span><span class="cx">     [m_legibleOutput.get() setDelegate:m_objcObserver.get() queue:dispatch_get_main_queue()];
</span><span class="lines">@@ -2031,7 +2031,7 @@
</span><span class="cx">     NSDictionary* attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA], kCVPixelBufferPixelFormatTypeKey,
</span><span class="cx">                                 nil];
</span><span class="cx"> #endif
</span><del>-    m_videoOutput = adoptNS([[getAVPlayerItemVideoOutputClass() alloc] initWithPixelBufferAttributes:attributes]);
</del><ins>+    m_videoOutput = adoptNS([allocAVPlayerItemVideoOutputInstance() initWithPixelBufferAttributes:attributes]);
</ins><span class="cx">     ASSERT(m_videoOutput);
</span><span class="cx"> 
</span><span class="cx">     [m_videoOutput setDelegate:m_videoOutputDelegate.get() queue:globalPullDelegateQueue()];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx"> MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC(MediaPlayer* player)
</span><span class="cx">     : m_player(player)
</span><span class="cx">     , m_weakPtrFactory(this)
</span><del>-    , m_synchronizer(adoptNS([[getAVSampleBufferRenderSynchronizerClass() alloc] init]))
</del><ins>+    , m_synchronizer(adoptNS([allocAVSampleBufferRenderSynchronizerInstance() init]))
</ins><span class="cx">     , m_seekTimer(*this, &amp;MediaPlayerPrivateMediaSourceAVFObjC::seekTimerFired)
</span><span class="cx">     , m_session(nullptr)
</span><span class="cx">     , m_networkState(MediaPlayer::Empty)
</span><span class="lines">@@ -607,7 +607,7 @@
</span><span class="cx">     if (m_sampleBufferDisplayLayer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_sampleBufferDisplayLayer = adoptNS([[getAVSampleBufferDisplayLayerClass() alloc] init]);
</del><ins>+    m_sampleBufferDisplayLayer = adoptNS([allocAVSampleBufferDisplayLayerInstance() init]);
</ins><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     [m_sampleBufferDisplayLayer setName:@&quot;MediaPlayerPrivateMediaSource AVSampleBufferDisplayLayer&quot;];
</span><span class="cx"> #endif
</span><span class="lines">@@ -695,7 +695,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         String storagePath = pathByAppendingComponent(storageDirectory, &quot;SecureStop.plist&quot;);
</span><del>-        m_streamSession = adoptNS([[getAVStreamSessionClass() alloc] initWithStorageDirectoryAtURL:[NSURL fileURLWithPath:storagePath]]);
</del><ins>+        m_streamSession = adoptNS([allocAVStreamSessionInstance() initWithStorageDirectoryAtURL:[NSURL fileURLWithPath:storagePath]]);
</ins><span class="cx">     }
</span><span class="cx">     return m_streamSession.get();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -580,7 +580,7 @@
</span><span class="cx"> 
</span><span class="cx"> SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC(MediaSourcePrivateAVFObjC* parent)
</span><span class="cx">     : m_weakFactory(this)
</span><del>-    , m_parser(adoptNS([[getAVStreamDataParserClass() alloc] init]))
</del><ins>+    , m_parser(adoptNS([allocAVStreamDataParserInstance() init]))
</ins><span class="cx">     , m_delegate(adoptNS([[WebAVStreamDataParserListener alloc] initWithParser:m_parser.get() parent:createWeakPtr()]))
</span><span class="cx">     , m_errorListener(adoptNS([[WebAVSampleBufferErrorListener alloc] initWithParent:this]))
</span><span class="cx">     , m_mediaSource(parent)
</span><span class="lines">@@ -777,7 +777,7 @@
</span><span class="cx">     // FIXME(135164): Support resetting parser to the last appended initialization segment.
</span><span class="cx">     destroyParser();
</span><span class="cx"> 
</span><del>-    m_parser = adoptNS([[getAVStreamDataParserClass() alloc] init]);
</del><ins>+    m_parser = adoptNS([allocAVStreamDataParserInstance() init]);
</ins><span class="cx">     m_delegate = adoptNS([[WebAVStreamDataParserListener alloc] initWithParser:m_parser.get() parent:createWeakPtr()]);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -862,7 +862,7 @@
</span><span class="cx">         m_enabledVideoTrackID = trackID;
</span><span class="cx">         [m_parser setShouldProvideMediaData:YES forTrackID:trackID];
</span><span class="cx">         if (!m_displayLayer) {
</span><del>-            m_displayLayer = adoptNS([[getAVSampleBufferDisplayLayerClass() alloc] init]);
</del><ins>+            m_displayLayer = adoptNS([allocAVSampleBufferDisplayLayerInstance() init]);
</ins><span class="cx">             [m_displayLayer requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:^{
</span><span class="cx">                 didBecomeReadyForMoreSamples(trackID);
</span><span class="cx">             }];
</span><span class="lines">@@ -886,7 +886,7 @@
</span><span class="cx">         [m_parser setShouldProvideMediaData:YES forTrackID:trackID];
</span><span class="cx">         RetainPtr&lt;AVSampleBufferAudioRenderer&gt; renderer;
</span><span class="cx">         if (!m_audioRenderers.count(trackID)) {
</span><del>-            renderer = adoptNS([[getAVSampleBufferAudioRendererClass() alloc] init]);
</del><ins>+            renderer = adoptNS([allocAVSampleBufferAudioRendererInstance() init]);
</ins><span class="cx">             [renderer requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:^{
</span><span class="cx">                 didBecomeReadyForMoreSamples(trackID);
</span><span class="cx">             }];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscamacPlatformCALayerMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -254,7 +254,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (layerClass)
</span><del>-        m_layer = adoptNS([[layerClass alloc] init]);
</del><ins>+        m_layer = adoptNS([(CALayer *)[layerClass alloc] init]);
</ins><span class="cx"> 
</span><span class="cx">     commonInit();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacFontMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/FontMac.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/FontMac.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/mac/FontMac.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> 
</span><span class="cx">     static CUIStyleEffectConfiguration *styleConfiguration;
</span><span class="cx">     if (!styleConfiguration) {
</span><del>-        styleConfiguration = [(CUIStyleEffectConfiguration *)[getCUIStyleEffectConfigurationClass() alloc] init];
</del><ins>+        styleConfiguration = [allocCUIStyleEffectConfigurationInstance() init];
</ins><span class="cx">         styleConfiguration.useSimplifiedEffect = YES;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -329,7 +329,7 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     NSError *error = nil;
</span><del>-    m_qtMovie = adoptNS([[QTMovie alloc] initWithAttributes:movieAttributes error:&amp;error]);
</del><ins>+    m_qtMovie = adoptNS([allocQTMovieInstance() initWithAttributes:movieAttributes error:&amp;error]);
</ins><span class="cx">     
</span><span class="cx">     if (!m_qtMovie)
</span><span class="cx">         return;
</span><span class="lines">@@ -425,7 +425,7 @@
</span><span class="cx">     ASSERT(supportsAcceleratedRendering());
</span><span class="cx">     
</span><span class="cx">     if (!m_qtVideoLayer) {
</span><del>-        m_qtVideoLayer = adoptNS([[QTMovieLayer alloc] init]);
</del><ins>+        m_qtVideoLayer = adoptNS([allocQTMovieLayerInstance() init]);
</ins><span class="cx">         if (!m_qtVideoLayer)
</span><span class="cx">             return;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacPDFDocumentImageMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/PDFDocumentImageMac.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/PDFDocumentImageMac.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/graphics/mac/PDFDocumentImageMac.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> 
</span><span class="cx"> void PDFDocumentImage::createPDFDocument()
</span><span class="cx"> {
</span><del>-    m_document = adoptNS([[getPDFDocumentClass() alloc] initWithData:data()-&gt;createNSData().get()]);
</del><ins>+    m_document = adoptNS([allocPDFDocumentInstance() initWithData:data()-&gt;createNSData().get()]);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PDFDocumentImage::computeBoundsForCurrentPage()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosPlatformSpeechSynthesizerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> #define AVSpeechUtteranceDefaultSpeechRate getAVSpeechUtteranceDefaultSpeechRate()
</span><span class="cx"> #define AVSpeechUtteranceMaximumSpeechRate getAVSpeechUtteranceMaximumSpeechRate()
</span><span class="cx"> 
</span><del>-#define AVSpeechSynthesizerClass getAVSpeechSynthesizerClass()
</del><span class="cx"> #define AVSpeechUtteranceClass getAVSpeechUtteranceClass()
</span><span class="cx"> #define AVSpeechSynthesisVoiceClass getAVSpeechSynthesisVoiceClass()
</span><span class="cx"> 
</span><span class="lines">@@ -97,7 +96,7 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     if (!m_synthesizer) {
</span><del>-        m_synthesizer = adoptNS([(AVSpeechSynthesizer *)[AVSpeechSynthesizerClass alloc] init]);
</del><ins>+        m_synthesizer = adoptNS([allocAVSpeechSynthesizerInstance() init]);
</ins><span class="cx">         [m_synthesizer setDelegate:self];
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebCoreMotionManagermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebCoreMotionManager.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebCoreMotionManager.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/ios/WebCoreMotionManager.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!WebThreadIsCurrent());
</span><span class="cx"> 
</span><del>-    m_motionManager = [(CMMotionManager *)[getCMMotionManagerClass() alloc] init];
</del><ins>+    m_motionManager = [allocCMMotionManagerInstance() init];
</ins><span class="cx"> 
</span><span class="cx">     m_gyroAvailable = m_motionManager.deviceMotionAvailable;
</span><span class="cx"> 
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx">     else
</span><span class="cx">         m_motionManager.accelerometerUpdateInterval = kMotionUpdateInterval;
</span><span class="cx"> 
</span><del>-    m_locationManager = [(CLLocationManager *)[getCLLocationManagerClass() alloc] init];
</del><ins>+    m_locationManager = [allocCLLocationManagerInstance() init];
</ins><span class="cx">     m_headingAvailable = [getCLLocationManagerClass() headingAvailable];
</span><span class="cx"> 
</span><span class="cx">     [self checkClientStatus];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">         return self;
</span><span class="cx">     
</span><span class="cx">     initAVPlayerController();
</span><del>-    self.playerControllerProxy = [[[getAVPlayerControllerClass() alloc] init] autorelease];
</del><ins>+    self.playerControllerProxy = [[allocAVPlayerControllerInstance() init] autorelease];
</ins><span class="cx">     return self;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -801,9 +801,9 @@
</span><span class="cx">         m_parentWindow = parentView.window;
</span><span class="cx"> 
</span><span class="cx">         if (!applicationIsAdSheet()) {
</span><del>-            m_window = adoptNS([[getUIWindowClass() alloc] initWithFrame:[[getUIScreenClass() mainScreen] bounds]]);
</del><ins>+            m_window = adoptNS([allocUIWindowInstance() initWithFrame:[[getUIScreenClass() mainScreen] bounds]]);
</ins><span class="cx">             [m_window setBackgroundColor:[getUIColorClass() clearColor]];
</span><del>-            m_viewController = adoptNS([[getUIViewControllerClass() alloc] init]);
</del><ins>+            m_viewController = adoptNS([allocUIViewControllerInstance() init]);
</ins><span class="cx">             [[m_viewController view] setFrame:[m_window bounds]];
</span><span class="cx">             [m_window setRootViewController:m_viewController.get()];
</span><span class="cx">             [m_window makeKeyAndVisible];
</span><span class="lines">@@ -819,7 +819,7 @@
</span><span class="cx">         CGRect videoRect = CGRectMake(0, 0, videoSize.width, videoSize.height);
</span><span class="cx">         [m_videoLayerContainer setVideoRect:videoRect];
</span><span class="cx"> 
</span><del>-        m_playerViewController = adoptNS([[getAVPlayerViewControllerClass() alloc] initWithVideoLayer:m_videoLayerContainer.get()]);
</del><ins>+        m_playerViewController = adoptNS([allocAVPlayerViewControllerInstance() initWithVideoLayer:m_videoLayerContainer.get()]);
</ins><span class="cx">         [m_playerViewController setShowsPlaybackControls:NO];
</span><span class="cx">         [m_playerViewController setPlayerController:(AVPlayerController *)playerController()];
</span><span class="cx">         [m_playerViewController setDelegate:playerController()];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacContentFilterMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ContentFilterMac.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ContentFilterMac.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/mac/ContentFilterMac.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -100,11 +100,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> {
</span><span class="cx">     if ([getWebFilterEvaluatorClass() isManagedSession])
</span><del>-        m_platformContentFilter = adoptNS([[getWebFilterEvaluatorClass() alloc] initWithResponse:response.nsURLResponse()]);
</del><ins>+        m_platformContentFilter = adoptNS([allocWebFilterEvaluatorInstance() initWithResponse:response.nsURLResponse()]);
</ins><span class="cx"> 
</span><span class="cx"> #if HAVE(NE_FILTER_SOURCE)
</span><span class="cx">     if ([getNEFilterSourceClass() filterRequired]) {
</span><del>-        m_neFilterSource = adoptNS([[getNEFilterSourceClass() alloc] initWithURL:[response.nsURLResponse() URL] direction:NEFilterSourceDirectionInbound socketIdentifier:0]);
</del><ins>+        m_neFilterSource = adoptNS([allocNEFilterSourceInstance() initWithURL:[response.nsURLResponse() URL] direction:NEFilterSourceDirectionInbound socketIdentifier:0]);
</ins><span class="cx">         m_neFilterSourceQueue = dispatch_queue_create(&quot;com.apple.WebCore.NEFilterSourceQueue&quot;, DISPATCH_QUEUE_SERIAL);
</span><span class="cx">         
</span><span class="cx">         long long expectedContentSize = [response.nsURLResponse() expectedContentLength];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacSoftLinkingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/SoftLinking.h (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/SoftLinking.h        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/mac/SoftLinking.h        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -143,6 +143,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> #define SOFT_LINK_CLASS(framework, className) \
</span><ins>+    @class className; \
</ins><span class="cx">     static Class init##className(); \
</span><span class="cx">     static Class (*get##className##Class)() = init##className; \
</span><span class="cx">     static Class class##className; \
</span><span class="lines">@@ -159,9 +160,17 @@
</span><span class="cx">         ASSERT(class##className); \
</span><span class="cx">         get##className##Class = className##Function; \
</span><span class="cx">         return class##className; \
</span><del>-    }
</del><ins>+    } \
+    _Pragma(&quot;clang diagnostic push&quot;) \
+    _Pragma(&quot;clang diagnostic ignored \&quot;-Wunused-function\&quot;&quot;) \
+    static className *alloc##className##Instance() \
+    { \
+        return [get##className##Class() alloc]; \
+    } \
+    _Pragma(&quot;clang diagnostic pop&quot;)
</ins><span class="cx"> 
</span><span class="cx"> #define SOFT_LINK_CLASS_OPTIONAL(framework, className) \
</span><ins>+    @class className; \
</ins><span class="cx">     static Class init##className(); \
</span><span class="cx">     static Class (*get##className##Class)() = init##className; \
</span><span class="cx">     static Class class##className; \
</span><span class="lines">@@ -177,7 +186,14 @@
</span><span class="cx">         class##className = objc_getClass(#className); \
</span><span class="cx">         get##className##Class = className##Function; \
</span><span class="cx">         return class##className; \
</span><del>-    }
</del><ins>+    } \
+    _Pragma(&quot;clang diagnostic push&quot;) \
+    _Pragma(&quot;clang diagnostic ignored \&quot;-Wunused-function\&quot;&quot;) \
+    static className *alloc##className##Instance() \
+    { \
+        return [get##className##Class() alloc]; \
+    } \
+    _Pragma(&quot;clang diagnostic pop&quot;)
</ins><span class="cx"> 
</span><span class="cx"> #define SOFT_LINK_POINTER(framework, name, type) \
</span><span class="cx">     static type init##name(); \
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacWebVideoFullscreenControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/WebVideoFullscreenController.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/WebVideoFullscreenController.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/mac/WebVideoFullscreenController.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx">     if ([self isWindowLoaded]) {
</span><span class="cx">         if (_videoElement-&gt;platformMedia().type == PlatformMedia::QTMovieType) {
</span><span class="cx">             QTMovie *movie = _videoElement-&gt;platformMedia().media.qtMovie;
</span><del>-            QTMovieLayer *layer = [[getQTMovieLayerClass() alloc] init];
</del><ins>+            QTMovieLayer *layer = [allocQTMovieLayerInstance() init];
</ins><span class="cx">             [layer setMovie:movie];
</span><span class="cx">             [self setupVideoOverlay:layer];
</span><span class="cx"> 
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx"> 
</span><span class="cx">         } else if (_videoElement-&gt;platformMedia().type == PlatformMedia::AVFoundationMediaPlayerType) {
</span><span class="cx">             AVPlayer *player = _videoElement-&gt;platformMedia().media.avfMediaPlayer;
</span><del>-            AVPlayerLayer *layer = [[getAVPlayerLayerClass() alloc] init];
</del><ins>+            AVPlayerLayer *layer = [allocAVPlayerLayerInstance() init];
</ins><span class="cx">             [self setupVideoOverlay:layer];
</span><span class="cx">             [layer setPlayer:player];
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVAudioCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -51,12 +51,6 @@
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVCaptureDeviceInput)
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVCaptureOutput)
</span><span class="cx"> 
</span><del>-#define AVCaptureAudioDataOutput getAVCaptureAudioDataOutputClass()
-#define AVCaptureConnection getAVCaptureConnectionClass()
-#define AVCaptureDevice getAVCaptureDeviceClass()
-#define AVCaptureDeviceInput getAVCaptureDeviceInputClass()
-#define AVCaptureOutput getAVCaptureOutputClass()
-
</del><span class="cx"> SOFT_LINK_POINTER(AVFoundation, AVMediaTypeAudio, NSString *)
</span><span class="cx"> 
</span><span class="cx"> #define AVMediaTypeAudio getAVMediaTypeAudio()
</span><span class="lines">@@ -92,12 +86,12 @@
</span><span class="cx"> 
</span><span class="cx"> void AVAudioCaptureSource::setupCaptureSession()
</span><span class="cx"> {
</span><del>-    RetainPtr&lt;AVCaptureDeviceInputType&gt; audioIn = adoptNS([[AVCaptureDeviceInput alloc] initWithDevice:device() error:nil]);
</del><ins>+    RetainPtr&lt;AVCaptureDeviceInputType&gt; audioIn = adoptNS([allocAVCaptureDeviceInputInstance() initWithDevice:device() error:nil]);
</ins><span class="cx">     ASSERT([session() canAddInput:audioIn.get()]);
</span><span class="cx">     if ([session() canAddInput:audioIn.get()])
</span><span class="cx">         [session() addInput:audioIn.get()];
</span><span class="cx">     
</span><del>-    RetainPtr&lt;AVCaptureAudioDataOutputType&gt; audioOutput = adoptNS([[AVCaptureAudioDataOutput alloc] init]);
</del><ins>+    RetainPtr&lt;AVCaptureAudioDataOutputType&gt; audioOutput = adoptNS([allocAVCaptureAudioDataOutputInstance() init]);
</ins><span class="cx">     setAudioSampleBufferDelegate(audioOutput.get());
</span><span class="cx">     ASSERT([session() canAddOutput:audioOutput.get()]);
</span><span class="cx">     if ([session() canAddOutput:audioOutput.get()])
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -358,7 +358,7 @@
</span><span class="cx">     Vector&lt;MediaConstraint&gt; mandatoryConstraints;
</span><span class="cx">     constraints-&gt;getMandatoryConstraints(mandatoryConstraints);
</span><span class="cx">     if (mandatoryConstraints.size()) {
</span><del>-        RetainPtr&lt;AVCaptureSessionType&gt; session = adoptNS([[AVCaptureSession alloc] init]);
</del><ins>+        RetainPtr&lt;AVCaptureSessionType&gt; session = adoptNS([allocAVCaptureSessionInstance() init]);
</ins><span class="cx">         for (size_t i = 0; i &lt; mandatoryConstraints.size(); ++i) {
</span><span class="cx">             const MediaConstraint&amp; constraint = mandatoryConstraints[i];
</span><span class="cx">             if (!sessionSupportsConstraint(session.get(), type, constraint.m_name, constraint.m_value)) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVMediaCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -177,7 +177,7 @@
</span><span class="cx">     if (m_session)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_session = adoptNS([[AVCaptureSession alloc] init]);
</del><ins>+    m_session = adoptNS([allocAVCaptureSessionInstance() init]);
</ins><span class="cx">     
</span><span class="cx">     [[NSNotificationCenter defaultCenter] addObserver:m_objcObserver.get() selector:@selector(captureSessionStoppedRunning:) name:AVCaptureSessionDidStopRunningNotification object:nil];
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -208,7 +208,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AVVideoCaptureSource::setupCaptureSession()
</span><span class="cx"> {
</span><del>-    RetainPtr&lt;AVCaptureDeviceInputType&gt; videoIn = adoptNS([[AVCaptureDeviceInput alloc] initWithDevice:device() error:nil]);
</del><ins>+    RetainPtr&lt;AVCaptureDeviceInputType&gt; videoIn = adoptNS([allocAVCaptureDeviceInputInstance() initWithDevice:device() error:nil]);
</ins><span class="cx">     ASSERT([session() canAddInput:videoIn.get()]);
</span><span class="cx">     if ([session() canAddInput:videoIn.get()])
</span><span class="cx">         [session() addInput:videoIn.get()];
</span><span class="lines">@@ -216,7 +216,7 @@
</span><span class="cx">     if (constraints())
</span><span class="cx">         applyConstraints(constraints());
</span><span class="cx"> 
</span><del>-    RetainPtr&lt;AVCaptureVideoDataOutputType&gt; videoOutput = adoptNS([[AVCaptureVideoDataOutput alloc] init]);
</del><ins>+    RetainPtr&lt;AVCaptureVideoDataOutputType&gt; videoOutput = adoptNS([allocAVCaptureVideoDataOutputInstance() init]);
</ins><span class="cx">     setVideoSampleBufferDelegate(videoOutput.get());
</span><span class="cx">     ASSERT([session() canAddOutput:videoOutput.get()]);
</span><span class="cx">     if ([session() canAddOutput:videoOutput.get()])
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkiosQuickLookmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/ios/QuickLook.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/ios/QuickLook.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebCore/platform/network/ios/QuickLook.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -195,7 +195,7 @@
</span><span class="cx">     if ([WebCore::QLPreviewGetSupportedMIMETypesSet() containsObject:updatedMIMEType.get()]) {
</span><span class="cx">         RetainPtr&lt;NSString&gt; uti = adoptNS(WebCore::QLTypeCopyUTIForURLAndMimeType(url, updatedMIMEType.get()));
</span><span class="cx"> 
</span><del>-        RetainPtr&lt;id&gt; converter = adoptNS([[QLPreviewConverterClass() alloc] initWithData:data name:nil uti:uti.get() options:nil]);
</del><ins>+        RetainPtr&lt;id&gt; converter = adoptNS([allocQLPreviewConverterInstance() initWithData:data name:nil uti:uti.get() options:nil]);
</ins><span class="cx">         NSURLRequest *request = [converter previewRequest];
</span><span class="cx"> 
</span><span class="cx">         // We use [request URL] here instead of url since it will be
</span><span class="lines">@@ -447,7 +447,7 @@
</span><span class="cx"> 
</span><span class="cx"> QuickLookHandle::QuickLookHandle(NSURL *firstRequestURL, NSURLConnection *connection, NSURLResponse *nsResponse, id delegate)
</span><span class="cx">     : m_firstRequestURL(firstRequestURL)
</span><del>-    , m_converter(adoptNS([[QLPreviewConverterClass() alloc] initWithConnection:connection delegate:delegate response:nsResponse options:nil]))
</del><ins>+    , m_converter(adoptNS([allocQLPreviewConverterInstance() initWithConnection:connection delegate:delegate response:nsResponse options:nil]))
</ins><span class="cx">     , m_delegate(delegate)
</span><span class="cx">     , m_finishedLoadingDataIntoConverter(false)
</span><span class="cx">     , m_nsResponse([m_converter previewResponse])
</span></span></pre></div>
<a id="trunkSourceWebKitiosChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/ChangeLog (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/ChangeLog        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit/ios/ChangeLog        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2014-12-07  Dan Bernstein  &lt;mitz@apple.com&gt;
+
+        Introduce and deploy a function that allocates and returns an instance of a soft-linked class
+        https://bugs.webkit.org/show_bug.cgi?id=139348
+
+        Reviewed by Anders Carlsson.
+
+        In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
+        picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
+        to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
+        doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
+        avoiding the ambiguity.
+
+        * Misc/WebGeolocationCoreLocationProvider.mm:
+        (-[WebGeolocationCoreLocationProvider createLocationManager]):
+
</ins><span class="cx"> 2014-12-06  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix build with newer versions of clang.
</span></span></pre></div>
<a id="trunkSourceWebKitiosMiscWebGeolocationCoreLocationProvidermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/Misc/WebGeolocationCoreLocationProvider.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/Misc/WebGeolocationCoreLocationProvider.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit/ios/Misc/WebGeolocationCoreLocationProvider.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!_locationManager);
</span><span class="cx"> 
</span><del>-    _locationManager = adoptNS([(CLLocationManager *)[getCLLocationManagerClass() alloc] init]);
</del><ins>+    _locationManager = adoptNS([allocCLLocationManagerInstance() init]);
</ins><span class="cx">     _lastAuthorizationStatus = [getCLLocationManagerClass() authorizationStatus];
</span><span class="cx"> 
</span><span class="cx">     [ _locationManager setDelegate:self];
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2014-12-07  Dan Bernstein  &lt;mitz@apple.com&gt;
+
+        Introduce and deploy a function that allocates and returns an instance of a soft-linked class
+        https://bugs.webkit.org/show_bug.cgi?id=139348
+
+        Reviewed by Anders Carlsson.
+
+        In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
+        picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
+        to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
+        doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
+        avoiding the ambiguity.
+
+        * WebView/WebActionMenuController.mm:
+        (-[WebActionMenuController _defaultMenuItemsForDataDetectableLink]):
+
</ins><span class="cx"> 2014-12-06  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add a stubbed out version of WebStorageNamespaceProvider
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebActionMenuControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebActionMenuController.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebActionMenuController.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit/mac/WebView/WebActionMenuController.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -292,7 +292,7 @@
</span><span class="cx">     if (!node)
</span><span class="cx">         return @[ ];
</span><span class="cx"> 
</span><del>-    RetainPtr&lt;DDActionContext&gt; actionContext = [[getDDActionContextClass() alloc] init];
</del><ins>+    RetainPtr&lt;DDActionContext&gt; actionContext = [allocDDActionContextInstance() init];
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Should this show a yellow highlight?
</span><span class="cx">     _currentActionContext = [actionContext contextForView:_webView altMode:YES interactionStartedHandler:^() {
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit2/ChangeLog        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2014-12-07  Dan Bernstein  &lt;mitz@apple.com&gt;
+
+        Introduce and deploy a function that allocates and returns an instance of a soft-linked class
+        https://bugs.webkit.org/show_bug.cgi?id=139348
+
+        Reviewed by Anders Carlsson.
+
+        In [[getFooClass() alloc] init*], the type of the result of +alloc is id, so the compiler
+        picks an arbitrary declaration of init*, not necessarily the Foo one. This can then lead
+        to warnings or errors if the types or attributes don’t match, or to runtime errors if Foo
+        doesn’t even have the expected initializer. The new allocFooInstance() returns a Foo *, thus
+        avoiding the ambiguity.
+
+        * UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
+        (-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]):
+        (-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
+        (-[WKAirPlayRoutePicker show:fromRect:]):
+        * UIProcess/ios/forms/WKFileUploadPanel.mm:
+        (-[_WKVideoFileUploadItem displayImage]):
+        * UIProcess/mac/WKActionMenuController.mm:
+        (-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]):
+        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
+        (WebKit::PlatformCALayerRemoteCustom::clone):
+
</ins><span class="cx"> 2014-12-06  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix build with newer versions of clang.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosformsWKAirPlayRoutePickermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/forms/WKAirPlayRoutePicker.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/forms/WKAirPlayRoutePicker.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit2/UIProcess/ios/forms/WKAirPlayRoutePicker.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">     if (_popoverController)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    _popoverController = adoptNS([(MPAudioVideoRoutingPopoverController *)[getMPAudioVideoRoutingPopoverControllerClass() alloc] initWithType:itemType]);
</del><ins>+    _popoverController = adoptNS([allocMPAudioVideoRoutingPopoverControllerInstance() initWithType:itemType]);
</ins><span class="cx">     [_popoverController setDelegate:self];
</span><span class="cx"> 
</span><span class="cx">     NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx">     if (_actionSheet)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    _actionSheet = adoptNS([(MPAudioVideoRoutingActionSheet *)[getMPAudioVideoRoutingActionSheetClass() alloc] initWithType:itemType]);
</del><ins>+    _actionSheet = adoptNS([allocMPAudioVideoRoutingActionSheetInstance() initWithType:itemType]);
</ins><span class="cx"> 
</span><span class="cx">     [_actionSheet
</span><span class="cx">         showWithValidInterfaceOrientationMaskBlock:^UIInterfaceOrientationMask {
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)show:(BOOL)hasVideo fromRect:(CGRect)elementRect
</span><span class="cx"> {
</span><del>-    _routingController = adoptNS([(MPAVRoutingController *)[getMPAVRoutingControllerClass() alloc] initWithName:@&quot;WebKit2 - HTML media element showing AirPlay route picker&quot;]);
</del><ins>+    _routingController = adoptNS([allocMPAVRoutingControllerInstance() initWithName:@&quot;WebKit2 - HTML media element showing AirPlay route picker&quot;]);
</ins><span class="cx">     [_routingController setDiscoveryMode:MPRouteDiscoveryModeDetailed];
</span><span class="cx"> 
</span><span class="cx">     MPAVItemType itemType = hasVideo ? MPAVItemTypeVideo : MPAVItemTypeAudio;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosformsWKFileUploadPanelmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/forms/WKFileUploadPanel.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/forms/WKFileUploadPanel.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit2/UIProcess/ios/forms/WKFileUploadPanel.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -56,8 +56,6 @@
</span><span class="cx"> SOFT_LINK_FRAMEWORK(AVFoundation);
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVAssetImageGenerator);
</span><span class="cx"> SOFT_LINK_CLASS(AVFoundation, AVURLAsset);
</span><del>-#define AVAssetImageGenerator_class getAVAssetImageGeneratorClass()
-#define AVURLAsset_class getAVURLAssetClass()
</del><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK(CoreMedia);
</span><span class="cx"> SOFT_LINK_CONSTANT(CoreMedia, kCMTimeZero, CMTime);
</span><span class="lines">@@ -207,8 +205,8 @@
</span><span class="cx"> 
</span><span class="cx"> - (UIImage *)displayImage
</span><span class="cx"> {
</span><del>-    RetainPtr&lt;AVURLAsset&gt; asset = adoptNS([[AVURLAsset_class alloc] initWithURL:_mediaURL.get() options:nil]);
-    RetainPtr&lt;AVAssetImageGenerator&gt; generator = adoptNS([[AVAssetImageGenerator_class alloc] initWithAsset:asset.get()]);
</del><ins>+    RetainPtr&lt;AVURLAsset&gt; asset = adoptNS([allocAVURLAssetInstance() initWithURL:_mediaURL.get() options:nil]);
+    RetainPtr&lt;AVAssetImageGenerator&gt; generator = adoptNS([allocAVAssetImageGeneratorInstance() initWithAsset:asset.get()]);
</ins><span class="cx">     [generator setAppliesPreferredTrackTransform:YES];
</span><span class="cx"> 
</span><span class="cx">     NSError *error = nil;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWKActionMenuControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -864,7 +864,7 @@
</span><span class="cx"> - (NSArray *)_defaultMenuItemsForDataDetectableLink
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;WebHitTestResult&gt; hitTestResult = [self _webHitTestResult];
</span><del>-    RetainPtr&lt;DDActionContext&gt; actionContext = [[getDDActionContextClass() alloc] init];
</del><ins>+    RetainPtr&lt;DDActionContext&gt; actionContext = [allocDDActionContextInstance() init];
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Should this show a yellow highlight?
</span><span class="cx">     _currentActionContext = [actionContext contextForView:_wkView altMode:YES interactionStartedHandler:^() {
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacPlatformCALayerRemoteCustommm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm (176923 => 176924)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm        2014-12-07 16:23:31 UTC (rev 176923)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm        2014-12-07 17:28:01 UTC (rev 176924)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">     bool copyContents = true;
</span><span class="cx"> 
</span><span class="cx">     if (layerType() == LayerTypeAVPlayerLayer) {
</span><del>-        clonedLayer = adoptNS([[getAVPlayerLayerClass() alloc] init]);
</del><ins>+        clonedLayer = adoptNS([allocAVPlayerLayerInstance() init]);
</ins><span class="cx"> 
</span><span class="cx">         AVPlayerLayer* destinationPlayerLayer = static_cast&lt;AVPlayerLayer *&gt;(clonedLayer.get());
</span><span class="cx">         AVPlayerLayer* sourcePlayerLayer = static_cast&lt;AVPlayerLayer *&gt;(platformLayer());
</span></span></pre>
</div>
</div>

</body>
</html>