<!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>[180287] trunk/Source/WebCore</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/180287">180287</a></dd>
<dt>Author</dt> <dd>ddkilzer@apple.com</dd>
<dt>Date</dt> <dd>2015-02-18 13:13:29 -0800 (Wed, 18 Feb 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Consolidate soft-linked CMTimeMakeWithSeconds() function
&lt;http://webkit.org/b/141655&gt;

Reviewed by Brent Fulgham.

* Configurations/WebCore.unexp: Remove workaround for
CMTimeMakeWithSeconds() weak external.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
- Add CoreMediaSoftLink.{cpp,h} to the project.

* platform/cf/CoreMediaSoftLink.cpp: Add.
* platform/cf/CoreMediaSoftLink.h: Add.
- Implement new strategy where code for soft-linking is only
  in one place, and the header can simply be included wherever a
  soft-linked method is needed.

* platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
* platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
* platform/mac/PlatformClockCM.mm:
- Remove old soft-linking strategy and include
  CoreMediaSoftLink.h.

* platform/mac/SoftLinking.h:
(SOFT_LINK_FUNCTION_DECL): Add.  New macro function used for
header declaration.  Split out from SOFT_LINK() macro.  Also
stop violating C++ standards by redeclaring an inline function
with the exact same signature as an extern &quot;C&quot; function.  This
now matches what we do on Windows (where Visual C++ already
prevented these shenanigans).
(SOFT_LINK_FUNCTION_IMPL): Add.  New macro function used for
source implementation.  Split out the from SOFT_LINK() macro.

* platform/win/SoftLinking.h:
(SOFT_LINK_FRAMEWORK): Map mac/SoftLinking.h macro name to
Windows macros so we can simplify CoreMediaSoftLink.{cpp,h}.
(SOFT_LINK_FUNCTION_DECL): Add.
(SOFT_LINK_FUNCTION_IMPL): Add.
- New macro functions split out from SOFT_LINK_DLL_IMPORT()
  macro for header declaration and source implementation.
- We assume the __cdecl calling convention because that's what
  all Apple libraries use, and so we are able to use the exact
  same macro function on both Mac and Windows to simplify
  CoreMediaSoftLink.{cpp,h}.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreConfigurationsWebCoreunexp">trunk/Source/WebCore/Configurations/WebCore.unexp</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationMediaTimeAVFoundationcpp">trunk/Source/WebCore/platform/graphics/avfoundation/MediaTimeAVFoundation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfCoreMediaSoftLinkingh">trunk/Source/WebCore/platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFcpp">trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm">trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacPlatformClockCMmm">trunk/Source/WebCore/platform/mac/PlatformClockCM.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacSoftLinkingh">trunk/Source/WebCore/platform/mac/SoftLinking.h</a></li>
<li><a href="#trunkSourceWebCoreplatformwinSoftLinkingh">trunk/Source/WebCore/platform/win/SoftLinking.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformcfCoreMediaSoftLinkcpp">trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformcfCoreMediaSoftLinkh">trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/ChangeLog        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -1,3 +1,55 @@
</span><ins>+2015-02-18  David Kilzer  &lt;ddkilzer@apple.com&gt;
+
+        Consolidate soft-linked CMTimeMakeWithSeconds() function
+        &lt;http://webkit.org/b/141655&gt;
+
+        Reviewed by Brent Fulgham.
+
+        * Configurations/WebCore.unexp: Remove workaround for
+        CMTimeMakeWithSeconds() weak external.
+
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        - Add CoreMediaSoftLink.{cpp,h} to the project.
+
+        * platform/cf/CoreMediaSoftLink.cpp: Add.
+        * platform/cf/CoreMediaSoftLink.h: Add.
+        - Implement new strategy where code for soft-linking is only
+          in one place, and the header can simply be included wherever a
+          soft-linked method is needed.
+
+        * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
+        * platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h:
+        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+        * platform/mac/PlatformClockCM.mm:
+        - Remove old soft-linking strategy and include
+          CoreMediaSoftLink.h.
+
+        * platform/mac/SoftLinking.h:
+        (SOFT_LINK_FUNCTION_DECL): Add.  New macro function used for
+        header declaration.  Split out from SOFT_LINK() macro.  Also
+        stop violating C++ standards by redeclaring an inline function
+        with the exact same signature as an extern &quot;C&quot; function.  This
+        now matches what we do on Windows (where Visual C++ already
+        prevented these shenanigans).
+        (SOFT_LINK_FUNCTION_IMPL): Add.  New macro function used for
+        source implementation.  Split out the from SOFT_LINK() macro.
+
+        * platform/win/SoftLinking.h:
+        (SOFT_LINK_FRAMEWORK): Map mac/SoftLinking.h macro name to
+        Windows macros so we can simplify CoreMediaSoftLink.{cpp,h}.
+        (SOFT_LINK_FUNCTION_DECL): Add.
+        (SOFT_LINK_FUNCTION_IMPL): Add.
+        - New macro functions split out from SOFT_LINK_DLL_IMPORT()
+          macro for header declaration and source implementation.
+        - We assume the __cdecl calling convention because that's what
+          all Apple libraries use, and so we are able to use the exact
+          same macro function on both Mac and Windows to simplify
+          CoreMediaSoftLink.{cpp,h}.
+
</ins><span class="cx"> 2015-02-18  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Page::userContentController() should return a reference, not a pointer
</span></span></pre></div>
<a id="trunkSourceWebCoreConfigurationsWebCoreunexp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Configurations/WebCore.unexp (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Configurations/WebCore.unexp        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/Configurations/WebCore.unexp        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -52,7 +52,6 @@
</span><span class="cx"> _CMTimeMake
</span><span class="cx"> 
</span><span class="cx"> # Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm
</span><del>-_CMTimeMakeWithSeconds
</del><span class="cx"> _CMTimeRangeGetEnd
</span><span class="cx"> 
</span><span class="cx"> # Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -8222,6 +8222,7 @@
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\win\WidgetWin.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\win\WindowMessageBroadcaster.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\cf\CFURLExtras.cpp&quot; /&gt;
</span><ins>+    &lt;ClCompile Include=&quot;..\platform\cf\CoreMediaSoftLink.cpp&quot; /&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;..\platform\cf\FileSystemCF.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\cf\URLCF.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;..\platform\cf\SharedBufferCF.cpp&quot; /&gt;
</span><span class="lines">@@ -19761,6 +19762,7 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\win\WindowMessageListener.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\win\WindowsTouch.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\cf\CFURLExtras.h&quot; /&gt;
</span><ins>+    &lt;ClInclude Include=&quot;..\platform\cf\CoreMediaSoftLink.h&quot; /&gt;
</ins><span class="cx">     &lt;ClInclude Include=&quot;..\platform\cf\win\CertificateCFWin.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\BitmapImage.h&quot; /&gt;
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\graphics\Color.h&quot; /&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -12169,6 +12169,9 @@
</span><span class="cx">     &lt;ClInclude Include=&quot;..\platform\cf\CFURLExtras.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\cf&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span><ins>+    &lt;ClInclude Include=&quot;..\platform\cf\CoreMediaSoftLink.h&quot;&gt;
+      &lt;Filter&gt;platform\cf&lt;/Filter&gt;
+    &lt;/ClInclude&gt;
</ins><span class="cx">     &lt;ClInclude Include=&quot;..\platform\cf\win\CertificateCFWin.h&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;platform\cf\win&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClInclude&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -1593,6 +1593,8 @@
</span><span class="cx">                 44311CD812E4E24B000A8D19 /* DOMDocumentPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 44311CD512E4E22D000A8D19 /* DOMDocumentPrivate.h */; };
</span><span class="cx">                 44311CD912E4E257000A8D19 /* DOMDocumentFragmentPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 44311CD412E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h */; };
</span><span class="cx">                 44311F8212E4E66C000A8D19 /* DOMDocumentFragmentInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711450AC5D5340053270F /* DOMDocumentFragmentInternal.h */; };
</span><ins>+                443817FF1A91B2F8006E04F2 /* CoreMediaSoftLink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 443817FD1A91B2F8006E04F2 /* CoreMediaSoftLink.cpp */; };
+                443818001A91B2F8006E04F2 /* CoreMediaSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 443817FE1A91B2F8006E04F2 /* CoreMediaSoftLink.h */; };
</ins><span class="cx">                 443F04270E75C8FB007E5407 /* NetworkStateNotifierIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 443F04260E75C8FB007E5407 /* NetworkStateNotifierIOS.mm */; };
</span><span class="cx">                 444D4E230F708B2E003158E0 /* WebCoreURLResponseIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 444D4E210F708B2E003158E0 /* WebCoreURLResponseIOS.mm */; };
</span><span class="cx">                 4476531B133170990006B789 /* SSLKeyGeneratorIOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4476531A133170990006B789 /* SSLKeyGeneratorIOS.cpp */; };
</span><span class="lines">@@ -8670,6 +8672,8 @@
</span><span class="cx">                 442AF7A8102CDDEA008FD4D3 /* QuickLook.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = QuickLook.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 44311CD412E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMDocumentFragmentPrivate.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 44311CD512E4E22D000A8D19 /* DOMDocumentPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMDocumentPrivate.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                443817FD1A91B2F8006E04F2 /* CoreMediaSoftLink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CoreMediaSoftLink.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                443817FE1A91B2F8006E04F2 /* CoreMediaSoftLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreMediaSoftLink.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 443F04260E75C8FB007E5407 /* NetworkStateNotifierIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkStateNotifierIOS.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 444D4E210F708B2E003158E0 /* WebCoreURLResponseIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreURLResponseIOS.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4476531A133170990006B789 /* SSLKeyGeneratorIOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SSLKeyGeneratorIOS.cpp; path = ios/SSLKeyGeneratorIOS.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -15094,6 +15098,8 @@
</span><span class="cx">                 1AE42F670AA4B8CB00C8612D /* cf */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                443817FD1A91B2F8006E04F2 /* CoreMediaSoftLink.cpp */,
+                                443817FE1A91B2F8006E04F2 /* CoreMediaSoftLink.h */,
</ins><span class="cx">                                 E1A8E56417552B2A007488E7 /* CFURLExtras.cpp */,
</span><span class="cx">                                 E1A8E56517552B2A007488E7 /* CFURLExtras.h */,
</span><span class="cx">                                 5160306B0CC4362300C8AC25 /* FileSystemCF.cpp */,
</span><span class="lines">@@ -23701,6 +23707,7 @@
</span><span class="cx">                                 CE1252431A16C01A00864480 /* CoreUISPI.h in Headers */,
</span><span class="cx">                                 9746AF2114F4DDE6003E7A71 /* Coordinates.h in Headers */,
</span><span class="cx">                                 CE1252371A15BDBE00864480 /* CoreGraphicsSPI.h in Headers */,
</span><ins>+                                443818001A91B2F8006E04F2 /* CoreMediaSoftLink.h in Headers */,
</ins><span class="cx">                                 1C6466251A12C38E0094603C /* CoreTextSPI.h in Headers */,
</span><span class="cx">                                 862F129E18C1576F005C54AF /* CountedUserActivity.h in Headers */,
</span><span class="cx">                                 A80E6D040A1989CA007FB8C5 /* Counter.h in Headers */,
</span><span class="lines">@@ -27393,6 +27400,7 @@
</span><span class="cx">                                 7EE6846312D26E3800E79415 /* CookieStorageCFNet.cpp in Sources */,
</span><span class="cx">                                 E13F01F11270E19000DFBA71 /* CookieStorageMac.mm in Sources */,
</span><span class="cx">                                 9746AF2114F4DDE6003E7A72 /* Coordinates.cpp in Sources */,
</span><ins>+                                443817FF1A91B2F8006E04F2 /* CoreMediaSoftLink.cpp in Sources */,
</ins><span class="cx">                                 BC5EB9500E82056B00B25965 /* CounterDirectives.cpp in Sources */,
</span><span class="cx">                                 9392F1500AD1862300691BD4 /* CounterNode.cpp in Sources */,
</span><span class="cx">                                 D0B0556909C6700100307E43 /* CreateLinkCommand.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformcfCoreMediaSoftLinkcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.cpp (0 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.cpp                                (rev 0)
+++ trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.cpp        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+
+#if USE(AVFOUNDATION)
+
+#include &quot;SoftLinking.h&quot;
+#include &lt;CoreMedia/CMTime.h&gt;
+
+namespace WebCore {
+SOFT_LINK_FRAMEWORK(CoreMedia)
+}
+
+SOFT_LINK_FUNCTION_IMPL(CoreMedia, CMTimeMakeWithSeconds, CMTime, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
+
+#endif // USE(AVFOUNDATION)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformcfCoreMediaSoftLinkh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.h (0 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.h                                (rev 0)
+++ trunk/Source/WebCore/platform/cf/CoreMediaSoftLink.h        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef CoreMediaSoftLink_h
+#define CoreMediaSoftLink_h
+
+#if USE(AVFOUNDATION)
+
+#include &quot;SoftLinking.h&quot;
+#include &lt;CoreMedia/CMTime.h&gt;
+
+SOFT_LINK_FUNCTION_DECL(CMTimeMakeWithSeconds, CMTime, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
+#define CMTimeMakeWithSeconds softLink_CMTimeMakeWithSeconds
+
+#endif // USE(AVFOUNDATION)
+
+#endif // CoreMediaSoftLink_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationMediaTimeAVFoundationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/MediaTimeAVFoundation.cpp (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/MediaTimeAVFoundation.cpp        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/MediaTimeAVFoundation.cpp        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -28,13 +28,14 @@
</span><span class="cx"> 
</span><span class="cx"> #if USE(AVFOUNDATION)
</span><span class="cx"> 
</span><ins>+#include &quot;CoreMediaSoftLink.h&quot;
+
</ins><span class="cx"> #if PLATFORM(WIN)
</span><span class="cx"> #include &lt;CoreMedia/CoreMedia.h&gt;
</span><span class="cx"> #include &quot;CoreMediaSoftLinking.h&quot;
</span><span class="cx"> #else
</span><span class="cx"> #include &quot;SoftLinking.h&quot;
</span><span class="cx"> SOFT_LINK_FRAMEWORK(CoreMedia)
</span><del>-SOFT_LINK(CoreMedia, CMTimeMakeWithSeconds, CMTime, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
</del><span class="cx"> SOFT_LINK(CoreMedia, CMTimeMake, CMTime, (int64_t value, int32_t timescale), (value, timescale))
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfCoreMediaSoftLinkingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -50,9 +50,6 @@
</span><span class="cx"> SOFT_LINK_DLL_IMPORT(CoreMedia, CMTimeMakeFromDictionary, CMTime, __cdecl, (CFDictionaryRef dict), (dict))
</span><span class="cx"> #define CMTimeMakeFromDictionary softLink_CMTimeMakeFromDictionary
</span><span class="cx"> 
</span><del>-SOFT_LINK_DLL_IMPORT(CoreMedia, CMTimeMakeWithSeconds, CMTime, __cdecl, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
-#define CMTimeMakeWithSeconds softLink_CMTimeMakeWithSeconds
-
</del><span class="cx"> SOFT_LINK_DLL_IMPORT(CoreMedia, CMTimeRangeGetEnd, CMTime, __cdecl, (CMTimeRange range), (range))
</span><span class="cx"> #define CMTimeRangeGetEnd softLink_CMTimeRangeGetEnd
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -74,6 +74,7 @@
</span><span class="cx"> 
</span><span class="cx"> // The softlink header files must be included after the AVCF and CoreMedia header files.
</span><span class="cx"> #include &quot;AVFoundationCFSoftLinking.h&quot;
</span><ins>+#include &quot;CoreMediaSoftLink.h&quot;
</ins><span class="cx"> #include &quot;CoreMediaSoftLinking.h&quot;
</span><span class="cx"> 
</span><span class="cx"> // We don't bother softlinking against libdispatch since it's already been loaded by AAS.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -35,6 +35,7 @@
</span><span class="cx"> #import &quot;BlockExceptions.h&quot;
</span><span class="cx"> #import &quot;CDMSessionAVFoundationObjC.h&quot;
</span><span class="cx"> #import &quot;Cookie.h&quot;
</span><ins>+#import &quot;CoreMediaSoftLink.h&quot;
</ins><span class="cx"> #import &quot;ExceptionCodePlaceholder.h&quot;
</span><span class="cx"> #import &quot;FloatConversion.h&quot;
</span><span class="cx"> #import &quot;FloatConversion.h&quot;
</span><span class="lines">@@ -155,7 +156,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK(CoreMedia, CMTimeCompare, int32_t, (CMTime time1, CMTime time2), (time1, time2))
</span><del>-SOFT_LINK(CoreMedia, CMTimeMakeWithSeconds, CMTime, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
</del><span class="cx"> SOFT_LINK(CoreMedia, CMTimeGetSeconds, Float64, (CMTime time), (time))
</span><span class="cx"> SOFT_LINK(CoreMedia, CMTimeRangeGetEnd, CMTime, (CMTimeRange range), (range))
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #import &quot;WebVideoFullscreenInterfaceAVKit.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AVKitSPI.h&quot;
</span><ins>+#import &quot;CoreMediaSoftLink.h&quot;
</ins><span class="cx"> #import &quot;Logging.h&quot;
</span><span class="cx"> #import &quot;GeometryUtilities.h&quot;
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><span class="lines">@@ -65,7 +66,6 @@
</span><span class="cx"> SOFT_LINK_CLASS(UIKit, UIColor)
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK(CoreMedia)
</span><del>-SOFT_LINK(CoreMedia, CMTimeMakeWithSeconds, CMTime, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
</del><span class="cx"> SOFT_LINK(CoreMedia, CMTimeGetSeconds, Float64, (CMTime time), (time))
</span><span class="cx"> SOFT_LINK(CoreMedia, CMTimeMake, CMTime, (int64_t value, int32_t timescale), (value, timescale))
</span><span class="cx"> SOFT_LINK(CoreMedia, CMTimeRangeContainsTime, Boolean, (CMTimeRange range, CMTime time), (range, time))
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacPlatformClockCMmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/PlatformClockCM.mm (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/PlatformClockCM.mm        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/mac/PlatformClockCM.mm        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> #import &quot;PlatformClockCM.h&quot;
</span><span class="cx"> 
</span><ins>+#import &quot;CoreMediaSoftLink.h&quot;
</ins><span class="cx"> #import &quot;MediaTimeAVFoundation.h&quot;
</span><span class="cx"> #import &quot;SoftLinking.h&quot;
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -48,7 +49,6 @@
</span><span class="cx"> SOFT_LINK(CoreMedia, CMTimebaseSetTime, OSStatus, (CMTimebaseRef timebase, CMTime time), (timebase, time))
</span><span class="cx"> SOFT_LINK(CoreMedia, CMTimebaseGetTime, CMTime, (CMTimebaseRef timebase), (timebase))
</span><span class="cx"> SOFT_LINK(CoreMedia, CMTimebaseSetRate, OSStatus, (CMTimebaseRef timebase, Float64 rate), (timebase, rate))
</span><del>-SOFT_LINK(CoreMedia, CMTimeMakeWithSeconds, CMTime, (Float64 seconds, int32_t preferredTimeScale), (seconds, preferredTimeScale))
</del><span class="cx"> SOFT_LINK(CoreMedia, CMTimeGetSeconds, Float64, (CMTime time), (time))
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacSoftLinkingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/SoftLinking.h (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/SoftLinking.h        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/mac/SoftLinking.h        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -109,6 +109,36 @@
</span><span class="cx">         return softLink##functionName parameterNames; \
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+#define SOFT_LINK_FUNCTION_DECL(functionName, resultType, parameterDeclarations, parameterNames) \
+    WTF_EXTERN_C_BEGIN \
+    resultType functionName parameterDeclarations; \
+    WTF_EXTERN_C_END \
+    namespace WebCore { \
+    extern resultType (*softLink##functionName) parameterDeclarations; \
+    } \
+    inline resultType softLink_##functionName parameterDeclarations \
+    { \
+        return WebCore::softLink##functionName parameterNames; \
+    }
+
+#define SOFT_LINK_FUNCTION_IMPL(framework, functionName, resultType, parameterDeclarations, parameterNames) \
+    WTF_EXTERN_C_BEGIN \
+    resultType functionName parameterDeclarations; \
+    WTF_EXTERN_C_END \
+    namespace WebCore { \
+    static resultType init##functionName parameterDeclarations; \
+    resultType (*softLink##functionName) parameterDeclarations = init##functionName; \
+    static resultType init##functionName parameterDeclarations \
+    { \
+        static dispatch_once_t once; \
+        dispatch_once(&amp;once, ^{ \
+            softLink##functionName = (resultType (*) parameterDeclarations) dlsym(framework##Library(), #functionName); \
+            ASSERT_WITH_MESSAGE(softLink##functionName, &quot;%s&quot;, dlerror()); \
+        }); \
+        return softLink##functionName parameterNames; \
+    } \
+    }
+
</ins><span class="cx"> #define SOFT_LINK_MAY_FAIL(framework, functionName, resultType, parameterDeclarations, parameterNames) \
</span><span class="cx">     WTF_EXTERN_C_BEGIN \
</span><span class="cx">     resultType functionName parameterDeclarations; \
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinSoftLinkingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/SoftLinking.h (180286 => 180287)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/SoftLinking.h        2015-02-18 20:51:14 UTC (rev 180286)
+++ trunk/Source/WebCore/platform/win/SoftLinking.h        2015-02-18 21:13:29 UTC (rev 180287)
</span><span class="lines">@@ -28,6 +28,12 @@
</span><span class="cx"> #include &lt;windows.h&gt;
</span><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><span class="cx"> 
</span><ins>+#ifdef DEBUG_ALL
+#define SOFT_LINK_FRAMEWORK(framework) SOFT_LINK_DEBUG_LIBRARY(framework)
+#else
+#define SOFT_LINK_FRAMEWORK(framework) SOFT_LINK_LIBRARY(framework)
+#endif
+
</ins><span class="cx"> #define SOFT_LINK_LIBRARY_HELPER(lib, suffix) \
</span><span class="cx">     static HMODULE lib##Library() \
</span><span class="cx">     { \
</span><span class="lines">@@ -110,6 +116,27 @@
</span><span class="cx">         return softLink##functionName parameterNames; \
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+#define SOFT_LINK_FUNCTION_DECL(functionName, resultType, parameterDeclarations, parameterNames) \
+    namespace WebCore { \
+    extern resultType(__cdecl*softLink##functionName) parameterDeclarations; \
+    } \
+    inline resultType softLink_##functionName parameterDeclarations \
+    { \
+        return WebCore::softLink##functionName parameterNames; \
+    }
+
+#define SOFT_LINK_FUNCTION_IMPL(library, functionName, resultType, parameterDeclarations, parameterNames) \
+    namespace WebCore { \
+    static resultType __cdecl init##functionName parameterDeclarations; \
+    resultType(__cdecl*softLink##functionName) parameterDeclarations = init##functionName; \
+    static resultType __cdecl init##functionName parameterDeclarations \
+    { \
+        softLink##functionName = reinterpret_cast&lt;resultType (__cdecl*)parameterDeclarations&gt;(SOFT_LINK_GETPROCADDRESS(library##Library(), #functionName)); \
+        ASSERT(softLink##functionName); \
+        return softLink##functionName parameterNames; \
+    } \
+    }
+
</ins><span class="cx"> #define SOFT_LINK_DLL_IMPORT_OPTIONAL(library, functionName, resultType, callingConvention, parameterDeclarations) \
</span><span class="cx">     typedef resultType (callingConvention *functionName##PtrType) parameterDeclarations; \
</span><span class="cx">     static functionName##PtrType functionName##Ptr() \
</span></span></pre>
</div>
</div>

</body>
</html>