<!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>[191871] 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/191871">191871</a></dd>
<dt>Author</dt> <dd>mmaxfield@apple.com</dd>
<dt>Date</dt> <dd>2015-11-01 16:52:46 -0800 (Sun, 01 Nov 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Clean up some CSS &amp; Font code
https://bugs.webkit.org/show_bug.cgi?id=150767

Reviewed by Darin Adler.

This patch migrates some CSS code to use references instead of pointers.
It also migrates some Font code to use RefPtr instead of PassRefPtr.

No new tests because there is no behavior change.

* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* css/CSSFontSelector.cpp:
(WebCore::createFontFace):
(WebCore::CSSFontSelector::addFontFaceRule):
* css/CSSFontSelector.h:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::initUserStyle):
(WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
* css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
* css/RuleSet.h:
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
* platform/graphics/Font.cpp:
(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::uprightOrientationFont):
(WebCore::Font::smallCapsFont):
(WebCore::Font::emphasisMarkFont):
(WebCore::Font::brokenIdeographFont):
(WebCore::Font::nonSyntheticItalicFont):
(WebCore::Font::createScaledFont):
* platform/graphics/Font.h:
(WebCore::Font::variantFont):
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformCreateScaledFont):
* svg/SVGFontFaceElement.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSDefaultStyleSheetscpp">trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontSelectorcpp">trunk/Source/WebCore/css/CSSFontSelector.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSFontSelectorh">trunk/Source/WebCore/css/CSSFontSelector.h</a></li>
<li><a href="#trunkSourceWebCorecssDocumentRuleSetscpp">trunk/Source/WebCore/css/DocumentRuleSets.cpp</a></li>
<li><a href="#trunkSourceWebCorecssRuleSetcpp">trunk/Source/WebCore/css/RuleSet.cpp</a></li>
<li><a href="#trunkSourceWebCorecssRuleSeth">trunk/Source/WebCore/css/RuleSet.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleInvalidationAnalysiscpp">trunk/Source/WebCore/css/StyleInvalidationAnalysis.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontcpp">trunk/Source/WebCore/platform/graphics/Font.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFonth">trunk/Source/WebCore/platform/graphics/Font.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontCascadeFontscpp">trunk/Source/WebCore/platform/graphics/FontCascadeFonts.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaFontCascadeCocoamm">trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaFontCocoamm">trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsfreetypeSimpleFontDataFreeTypecpp">trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinSimpleFontDataWincpp">trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGFontFaceElementh">trunk/Source/WebCore/svg/SVGFontFaceElement.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/ChangeLog        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -1,3 +1,47 @@
</span><ins>+2015-11-01  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
+
+        Clean up some CSS &amp; Font code
+        https://bugs.webkit.org/show_bug.cgi?id=150767
+
+        Reviewed by Darin Adler.
+
+        This patch migrates some CSS code to use references instead of pointers.
+        It also migrates some Font code to use RefPtr instead of PassRefPtr.
+
+        No new tests because there is no behavior change.
+
+        * css/CSSDefaultStyleSheets.cpp:
+        (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
+        (WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
+        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
+        * css/CSSFontSelector.cpp:
+        (WebCore::createFontFace):
+        (WebCore::CSSFontSelector::addFontFaceRule):
+        * css/CSSFontSelector.h:
+        * css/DocumentRuleSets.cpp:
+        (WebCore::DocumentRuleSets::initUserStyle):
+        (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
+        (WebCore::DocumentRuleSets::appendAuthorStyleSheets):
+        * css/RuleSet.cpp:
+        (WebCore::RuleSet::addChildRules):
+        (WebCore::RuleSet::addRulesFromSheet):
+        * css/RuleSet.h:
+        * css/StyleInvalidationAnalysis.cpp:
+        (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
+        * platform/graphics/Font.cpp:
+        (WebCore::Font::verticalRightOrientationFont):
+        (WebCore::Font::uprightOrientationFont):
+        (WebCore::Font::smallCapsFont):
+        (WebCore::Font::emphasisMarkFont):
+        (WebCore::Font::brokenIdeographFont):
+        (WebCore::Font::nonSyntheticItalicFont):
+        (WebCore::Font::createScaledFont):
+        * platform/graphics/Font.h:
+        (WebCore::Font::variantFont):
+        * platform/graphics/cocoa/FontCocoa.mm:
+        (WebCore::Font::platformCreateScaledFont):
+        * svg/SVGFontFaceElement.h:
+
</ins><span class="cx"> 2015-11-01  Darin Adler  &lt;darin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove some dead and unneeded code (ScrollbarThemeSafari, RenderThemeSafari, OPENCL, a little color space logic)
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSDefaultStyleSheetscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/css/CSSDefaultStyleSheets.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -127,13 +127,13 @@
</span><span class="cx">     // Strict-mode rules.
</span><span class="cx">     String defaultRules = String(htmlUserAgentStyleSheet, sizeof(htmlUserAgentStyleSheet)) + RenderTheme::defaultTheme()-&gt;extraDefaultStyleSheet();
</span><span class="cx">     defaultStyleSheet = parseUASheet(defaultRules);
</span><del>-    defaultStyle-&gt;addRulesFromSheet(defaultStyleSheet, screenEval());
-    defaultPrintStyle-&gt;addRulesFromSheet(defaultStyleSheet, printEval());
</del><ins>+    defaultStyle-&gt;addRulesFromSheet(*defaultStyleSheet, screenEval());
+    defaultPrintStyle-&gt;addRulesFromSheet(*defaultStyleSheet, printEval());
</ins><span class="cx"> 
</span><span class="cx">     // Quirks-mode rules.
</span><span class="cx">     String quirksRules = String(quirksUserAgentStyleSheet, sizeof(quirksUserAgentStyleSheet)) + RenderTheme::defaultTheme()-&gt;extraQuirksStyleSheet();
</span><span class="cx">     quirksStyleSheet = parseUASheet(quirksRules);
</span><del>-    defaultQuirksStyle-&gt;addRulesFromSheet(quirksStyleSheet, screenEval());
</del><ins>+    defaultQuirksStyle-&gt;addRulesFromSheet(*quirksStyleSheet, screenEval());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CSSDefaultStyleSheets::loadSimpleDefaultStyle()
</span><span class="lines">@@ -147,7 +147,7 @@
</span><span class="cx">     defaultQuirksStyle = std::make_unique&lt;RuleSet&gt;().release();
</span><span class="cx"> 
</span><span class="cx">     simpleDefaultStyleSheet = parseUASheet(simpleUserAgentStyleSheet, strlen(simpleUserAgentStyleSheet));
</span><del>-    defaultStyle-&gt;addRulesFromSheet(simpleDefaultStyleSheet, screenEval());
</del><ins>+    defaultStyle-&gt;addRulesFromSheet(*simpleDefaultStyleSheet, screenEval());
</ins><span class="cx"> 
</span><span class="cx">     // No need to initialize quirks sheet yet as there are no quirk rules for elements allowed in simple default style.
</span><span class="cx"> }
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">                 if (plugInsRules.isEmpty())
</span><span class="cx">                     plugInsRules = String(plugInsUserAgentStyleSheet, sizeof(plugInsUserAgentStyleSheet));
</span><span class="cx">                 plugInsStyleSheet = parseUASheet(plugInsRules);
</span><del>-                defaultStyle-&gt;addRulesFromSheet(plugInsStyleSheet, screenEval());
</del><ins>+                defaultStyle-&gt;addRulesFromSheet(*plugInsStyleSheet, screenEval());
</ins><span class="cx">                 changedDefaultStyle = true;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -177,8 +177,8 @@
</span><span class="cx">                 if (mediaRules.isEmpty())
</span><span class="cx">                     mediaRules = String(mediaControlsUserAgentStyleSheet, sizeof(mediaControlsUserAgentStyleSheet)) + RenderTheme::themeForPage(element.document().page())-&gt;extraMediaControlsStyleSheet();
</span><span class="cx">                 mediaControlsStyleSheet = parseUASheet(mediaRules);
</span><del>-                defaultStyle-&gt;addRulesFromSheet(mediaControlsStyleSheet, screenEval());
-                defaultPrintStyle-&gt;addRulesFromSheet(mediaControlsStyleSheet, printEval());
</del><ins>+                defaultStyle-&gt;addRulesFromSheet(*mediaControlsStyleSheet, screenEval());
+                defaultPrintStyle-&gt;addRulesFromSheet(*mediaControlsStyleSheet, printEval());
</ins><span class="cx">                 changedDefaultStyle = true;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -188,8 +188,8 @@
</span><span class="cx">             if (!imageControlsStyleSheet) {
</span><span class="cx">                 String imageControlsRules = RenderTheme::themeForPage(element.document().page())-&gt;imageControlsStyleSheet();
</span><span class="cx">                 imageControlsStyleSheet = parseUASheet(imageControlsRules);
</span><del>-                defaultStyle-&gt;addRulesFromSheet(imageControlsStyleSheet, screenEval());
-                defaultPrintStyle-&gt;addRulesFromSheet(imageControlsStyleSheet, printEval());
</del><ins>+                defaultStyle-&gt;addRulesFromSheet(*imageControlsStyleSheet, screenEval());
+                defaultPrintStyle-&gt;addRulesFromSheet(*imageControlsStyleSheet, printEval());
</ins><span class="cx">                 changedDefaultStyle = true;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -198,8 +198,8 @@
</span><span class="cx">         if (!svgStyleSheet) {
</span><span class="cx">             // SVG rules.
</span><span class="cx">             svgStyleSheet = parseUASheet(svgUserAgentStyleSheet, sizeof(svgUserAgentStyleSheet));
</span><del>-            defaultStyle-&gt;addRulesFromSheet(svgStyleSheet, screenEval());
-            defaultPrintStyle-&gt;addRulesFromSheet(svgStyleSheet, printEval());
</del><ins>+            defaultStyle-&gt;addRulesFromSheet(*svgStyleSheet, screenEval());
+            defaultPrintStyle-&gt;addRulesFromSheet(*svgStyleSheet, printEval());
</ins><span class="cx">             changedDefaultStyle = true;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -208,8 +208,8 @@
</span><span class="cx">         if (!mathMLStyleSheet) {
</span><span class="cx">             // MathML rules.
</span><span class="cx">             mathMLStyleSheet = parseUASheet(mathmlUserAgentStyleSheet, sizeof(mathmlUserAgentStyleSheet));
</span><del>-            defaultStyle-&gt;addRulesFromSheet(mathMLStyleSheet, screenEval());
-            defaultPrintStyle-&gt;addRulesFromSheet(mathMLStyleSheet, printEval());
</del><ins>+            defaultStyle-&gt;addRulesFromSheet(*mathMLStyleSheet, screenEval());
+            defaultPrintStyle-&gt;addRulesFromSheet(*mathMLStyleSheet, printEval());
</ins><span class="cx">             changedDefaultStyle = true;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -219,8 +219,8 @@
</span><span class="cx">     if (!fullscreenStyleSheet &amp;&amp; element.document().webkitIsFullScreen()) {
</span><span class="cx">         String fullscreenRules = String(fullscreenUserAgentStyleSheet, sizeof(fullscreenUserAgentStyleSheet)) + RenderTheme::defaultTheme()-&gt;extraFullScreenStyleSheet();
</span><span class="cx">         fullscreenStyleSheet = parseUASheet(fullscreenRules);
</span><del>-        defaultStyle-&gt;addRulesFromSheet(fullscreenStyleSheet, screenEval());
-        defaultQuirksStyle-&gt;addRulesFromSheet(fullscreenStyleSheet, screenEval());
</del><ins>+        defaultStyle-&gt;addRulesFromSheet(*fullscreenStyleSheet, screenEval());
+        defaultQuirksStyle-&gt;addRulesFromSheet(*fullscreenStyleSheet, screenEval());
</ins><span class="cx">         changedDefaultStyle = true;
</span><span class="cx">     }
</span><span class="cx"> #endif // ENABLE(FULLSCREEN_API)
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontSelectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontSelector.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontSelector.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/css/CSSFontSelector.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -178,13 +178,13 @@
</span><span class="cx">     return static_cast&lt;FontTraitsMask&gt;(traitsMask);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Ref&lt;CSSFontFace&gt; createFontFace(CSSValueList&amp; srcList, FontTraitsMask traitsMask, Document* document, const StyleRuleFontFace* fontFaceRule, bool isInitiatingElementInUserAgentShadowTree)
</del><ins>+static Ref&lt;CSSFontFace&gt; createFontFace(CSSValueList&amp; srcList, FontTraitsMask traitsMask, Document* document, const StyleRuleFontFace&amp; fontFaceRule, bool isInitiatingElementInUserAgentShadowTree)
</ins><span class="cx"> {
</span><span class="cx">     RefPtr&lt;CSSFontFaceRule&gt; rule;
</span><span class="cx"> #if ENABLE(FONT_LOAD_EVENTS)
</span><span class="cx">     // FIXME: https://bugs.webkit.org/show_bug.cgi?id=112116 - This CSSFontFaceRule has no parent.
</span><span class="cx">     if (RuntimeEnabledFeatures::sharedFeatures().fontLoadEventsEnabled())
</span><del>-        rule = static_pointer_cast&lt;CSSFontFaceRule&gt;(fontFaceRule-&gt;createCSSOMWrapper());
</del><ins>+        rule = static_pointer_cast&lt;CSSFontFaceRule&gt;(fontFaceRule.createCSSOMWrapper());
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(fontFaceRule);
</span><span class="cx"> #endif
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx">         foundSVGFont = item.isSVGFontFaceSrc() || item.svgFontFaceElement();
</span><span class="cx"> #endif
</span><span class="cx">         if (!item.isLocal()) {
</span><del>-            Settings* settings = document ? document-&gt;frame() ? &amp;document-&gt;frame()-&gt;settings() : 0 : 0;
</del><ins>+            Settings* settings = document ? document-&gt;settings() : nullptr;
</ins><span class="cx">             bool allowDownloading = foundSVGFont || (settings &amp;&amp; settings-&gt;downloadableBinaryFontsEnabled());
</span><span class="cx">             if (allowDownloading &amp;&amp; item.isSupportedFormat() &amp;&amp; document) {
</span><span class="cx">                 CachedFont* cachedFont = item.cachedFont(document, foundSVGFont, isInitiatingElementInUserAgentShadowTree);
</span><span class="lines">@@ -277,9 +277,9 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CSSFontSelector::addFontFaceRule(const StyleRuleFontFace* fontFaceRule, bool isInitiatingElementInUserAgentShadowTree)
</del><ins>+void CSSFontSelector::addFontFaceRule(const StyleRuleFontFace&amp; fontFaceRule, bool isInitiatingElementInUserAgentShadowTree)
</ins><span class="cx"> {
</span><del>-    const StyleProperties&amp; style = fontFaceRule-&gt;properties();
</del><ins>+    const StyleProperties&amp; style = fontFaceRule.properties();
</ins><span class="cx">     RefPtr&lt;CSSValue&gt; fontFamily = style.getPropertyCSSValue(CSSPropertyFontFamily);
</span><span class="cx">     RefPtr&lt;CSSValue&gt; src = style.getPropertyCSSValue(CSSPropertySrc);
</span><span class="cx">     RefPtr&lt;CSSValue&gt; unicodeRange = style.getPropertyCSSValue(CSSPropertyUnicodeRange);
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSFontSelectorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSFontSelector.h (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSFontSelector.h        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/css/CSSFontSelector.h        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> 
</span><span class="cx">     void clearDocument();
</span><span class="cx"> 
</span><del>-    void addFontFaceRule(const StyleRuleFontFace*, bool isInitiatingElementInUserAgentShadowTree);
</del><ins>+    void addFontFaceRule(const StyleRuleFontFace&amp;, bool isInitiatingElementInUserAgentShadowTree);
</ins><span class="cx"> 
</span><span class="cx">     void fontLoaded();
</span><span class="cx">     virtual void fontCacheInvalidated() override;
</span></span></pre></div>
<a id="trunkSourceWebCorecssDocumentRuleSetscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/DocumentRuleSets.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/DocumentRuleSets.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/css/DocumentRuleSets.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> {
</span><span class="cx">     auto tempUserStyle = std::make_unique&lt;RuleSet&gt;();
</span><span class="cx">     if (CSSStyleSheet* pageUserSheet = extensionStyleSheets.pageUserSheet())
</span><del>-        tempUserStyle-&gt;addRulesFromSheet(&amp;pageUserSheet-&gt;contents(), medium, &amp;resolver);
</del><ins>+        tempUserStyle-&gt;addRulesFromSheet(pageUserSheet-&gt;contents(), medium, &amp;resolver);
</ins><span class="cx">     collectRulesFromUserStyleSheets(extensionStyleSheets.injectedUserStyleSheets(), *tempUserStyle, medium, resolver);
</span><span class="cx">     collectRulesFromUserStyleSheets(extensionStyleSheets.documentUserStyleSheets(), *tempUserStyle, medium, resolver);
</span><span class="cx">     if (tempUserStyle-&gt;ruleCount() &gt; 0 || tempUserStyle-&gt;pageRules().size() &gt; 0)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> {
</span><span class="cx">     for (unsigned i = 0; i &lt; userSheets.size(); ++i) {
</span><span class="cx">         ASSERT(userSheets[i]-&gt;contents().isUserStyleSheet());
</span><del>-        userStyle.addRulesFromSheet(&amp;userSheets[i]-&gt;contents(), medium, &amp;resolver);
</del><ins>+        userStyle.addRulesFromSheet(userSheets[i]-&gt;contents(), medium, &amp;resolver);
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx">         ASSERT(!cssSheet-&gt;disabled());
</span><span class="cx">         if (cssSheet-&gt;mediaQueries() &amp;&amp; !medium-&gt;eval(cssSheet-&gt;mediaQueries(), resolver))
</span><span class="cx">             continue;
</span><del>-        m_authorStyle-&gt;addRulesFromSheet(&amp;cssSheet-&gt;contents(), *medium, resolver);
</del><ins>+        m_authorStyle-&gt;addRulesFromSheet(cssSheet-&gt;contents(), *medium, resolver);
</ins><span class="cx">         inspectorCSSOMWrappers.collectFromStyleSheetIfNeeded(cssSheet.get());
</span><span class="cx">     }
</span><span class="cx">     m_authorStyle-&gt;shrinkToFit();
</span></span></pre></div>
<a id="trunkSourceWebCorecssRuleSetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/RuleSet.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/RuleSet.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/css/RuleSet.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -339,7 +339,7 @@
</span><span class="cx">                 addChildRules(mediaRule.childRules(), medium, resolver, hasDocumentSecurityOrigin, isInitiatingElementInUserAgentShadowTree, addRuleFlags);
</span><span class="cx">         } else if (is&lt;StyleRuleFontFace&gt;(*rule) &amp;&amp; resolver) {
</span><span class="cx">             // Add this font face to our set.
</span><del>-            resolver-&gt;document().fontSelector().addFontFaceRule(downcast&lt;StyleRuleFontFace&gt;(rule.get()), isInitiatingElementInUserAgentShadowTree);
</del><ins>+            resolver-&gt;document().fontSelector().addFontFaceRule(downcast&lt;StyleRuleFontFace&gt;(*rule.get()), isInitiatingElementInUserAgentShadowTree);
</ins><span class="cx">             resolver-&gt;invalidateMatchedPropertiesCache();
</span><span class="cx">         } else if (is&lt;StyleRuleKeyframes&gt;(*rule) &amp;&amp; resolver)
</span><span class="cx">             resolver-&gt;addKeyframeStyle(downcast&lt;StyleRuleKeyframes&gt;(rule.get()));
</span><span class="lines">@@ -358,24 +358,20 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void RuleSet::addRulesFromSheet(StyleSheetContents* sheet, const MediaQueryEvaluator&amp; medium, StyleResolver* resolver)
</del><ins>+void RuleSet::addRulesFromSheet(StyleSheetContents&amp; sheet, const MediaQueryEvaluator&amp; medium, StyleResolver* resolver)
</ins><span class="cx"> {
</span><del>-    ASSERT(sheet);
-
-    const Vector&lt;RefPtr&lt;StyleRuleImport&gt;&gt;&amp; importRules = sheet-&gt;importRules();
-    for (unsigned i = 0; i &lt; importRules.size(); ++i) {
-        StyleRuleImport* importRule = importRules[i].get();
-        if (importRule-&gt;styleSheet() &amp;&amp; (!importRule-&gt;mediaQueries() || medium.eval(importRule-&gt;mediaQueries(), resolver)))
-            addRulesFromSheet(importRule-&gt;styleSheet(), medium, resolver);
</del><ins>+    for (auto&amp; rule : sheet.importRules()) {
+        if (rule-&gt;styleSheet() &amp;&amp; (!rule-&gt;mediaQueries() || medium.eval(rule-&gt;mediaQueries(), resolver)))
+            addRulesFromSheet(*rule-&gt;styleSheet(), medium, resolver);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool hasDocumentSecurityOrigin = resolver &amp;&amp; resolver-&gt;document().securityOrigin()-&gt;canRequest(sheet-&gt;baseURL());
</del><ins>+    bool hasDocumentSecurityOrigin = resolver &amp;&amp; resolver-&gt;document().securityOrigin()-&gt;canRequest(sheet.baseURL());
</ins><span class="cx">     AddRuleFlags addRuleFlags = static_cast&lt;AddRuleFlags&gt;((hasDocumentSecurityOrigin ? RuleHasDocumentSecurityOrigin : 0));
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Skip Content Security Policy check when stylesheet is in a user agent shadow tree.
</span><span class="cx">     // See &lt;https://bugs.webkit.org/show_bug.cgi?id=146663&gt;.
</span><span class="cx">     bool isInitiatingElementInUserAgentShadowTree = false;
</span><del>-    addChildRules(sheet-&gt;childRules(), medium, resolver, hasDocumentSecurityOrigin, isInitiatingElementInUserAgentShadowTree, addRuleFlags);
</del><ins>+    addChildRules(sheet.childRules(), medium, resolver, hasDocumentSecurityOrigin, isInitiatingElementInUserAgentShadowTree, addRuleFlags);
</ins><span class="cx"> 
</span><span class="cx">     if (m_autoShrinkToFitEnabled)
</span><span class="cx">         shrinkToFit();
</span></span></pre></div>
<a id="trunkSourceWebCorecssRuleSeth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/RuleSet.h (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/RuleSet.h        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/css/RuleSet.h        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx">     typedef Vector&lt;RuleData, 1&gt; RuleDataVector;
</span><span class="cx">     typedef HashMap&lt;AtomicStringImpl*, std::unique_ptr&lt;RuleDataVector&gt;&gt; AtomRuleMap;
</span><span class="cx"> 
</span><del>-    void addRulesFromSheet(StyleSheetContents*, const MediaQueryEvaluator&amp;, StyleResolver* = 0);
</del><ins>+    void addRulesFromSheet(StyleSheetContents&amp;, const MediaQueryEvaluator&amp;, StyleResolver* = 0);
</ins><span class="cx"> 
</span><span class="cx">     void addStyleRule(StyleRule*, AddRuleFlags);
</span><span class="cx">     void addRule(StyleRule*, unsigned selectorIndex, AddRuleFlags);
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleInvalidationAnalysiscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleInvalidationAnalysis.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleInvalidationAnalysis.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/css/StyleInvalidationAnalysis.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_ruleSets.resetAuthorStyle();
</span><span class="cx">     for (auto&amp; sheet : sheets)
</span><del>-        m_ruleSets.authorStyle()-&gt;addRulesFromSheet(sheet, mediaQueryEvaluator);
</del><ins>+        m_ruleSets.authorStyle()-&gt;addRulesFromSheet(*sheet, mediaQueryEvaluator);
</ins><span class="cx"> 
</span><span class="cx">     m_hasShadowPseudoElementRulesInAuthorSheet = m_ruleSets.authorStyle()-&gt;hasShadowPseudoElementRules();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/platform/graphics/Font.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx">     return page-&gt;glyphDataForCharacter(character);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::verticalRightOrientationFont() const
</del><ins>+const Font&amp; Font::verticalRightOrientationFont() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_derivedFontData)
</span><span class="cx">         m_derivedFontData = std::make_unique&lt;DerivedFontData&gt;(isCustomFont());
</span><span class="lines">@@ -275,40 +275,40 @@
</span><span class="cx">         m_derivedFontData-&gt;verticalRightOrientation = create(verticalRightPlatformData, isCustomFont(), false, true);
</span><span class="cx">     }
</span><span class="cx">     ASSERT(m_derivedFontData-&gt;verticalRightOrientation != this);
</span><del>-    return m_derivedFontData-&gt;verticalRightOrientation;
</del><ins>+    return *m_derivedFontData-&gt;verticalRightOrientation;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::uprightOrientationFont() const
</del><ins>+const Font&amp; Font::uprightOrientationFont() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_derivedFontData)
</span><span class="cx">         m_derivedFontData = std::make_unique&lt;DerivedFontData&gt;(isCustomFont());
</span><span class="cx">     if (!m_derivedFontData-&gt;uprightOrientation)
</span><span class="cx">         m_derivedFontData-&gt;uprightOrientation = create(m_platformData, isCustomFont(), false, true);
</span><span class="cx">     ASSERT(m_derivedFontData-&gt;uprightOrientation != this);
</span><del>-    return m_derivedFontData-&gt;uprightOrientation;
</del><ins>+    return *m_derivedFontData-&gt;uprightOrientation;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::smallCapsFont(const FontDescription&amp; fontDescription) const
</del><ins>+const Font* Font::smallCapsFont(const FontDescription&amp; fontDescription) const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_derivedFontData)
</span><span class="cx">         m_derivedFontData = std::make_unique&lt;DerivedFontData&gt;(isCustomFont());
</span><span class="cx">     if (!m_derivedFontData-&gt;smallCaps)
</span><span class="cx">         m_derivedFontData-&gt;smallCaps = createScaledFont(fontDescription, smallCapsFontSizeMultiplier);
</span><span class="cx">     ASSERT(m_derivedFontData-&gt;smallCaps != this);
</span><del>-    return m_derivedFontData-&gt;smallCaps;
</del><ins>+    return m_derivedFontData-&gt;smallCaps.get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::emphasisMarkFont(const FontDescription&amp; fontDescription) const
</del><ins>+const Font* Font::emphasisMarkFont(const FontDescription&amp; fontDescription) const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_derivedFontData)
</span><span class="cx">         m_derivedFontData = std::make_unique&lt;DerivedFontData&gt;(isCustomFont());
</span><span class="cx">     if (!m_derivedFontData-&gt;emphasisMark)
</span><span class="cx">         m_derivedFontData-&gt;emphasisMark = createScaledFont(fontDescription, emphasisMarkFontSizeMultiplier);
</span><span class="cx">     ASSERT(m_derivedFontData-&gt;emphasisMark != this);
</span><del>-    return m_derivedFontData-&gt;emphasisMark;
</del><ins>+    return m_derivedFontData-&gt;emphasisMark.get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::brokenIdeographFont() const
</del><ins>+const Font&amp; Font::brokenIdeographFont() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_derivedFontData)
</span><span class="cx">         m_derivedFontData = std::make_unique&lt;DerivedFontData&gt;(isCustomFont());
</span><span class="lines">@@ -317,10 +317,10 @@
</span><span class="cx">         m_derivedFontData-&gt;brokenIdeograph-&gt;m_isBrokenIdeographFallback = true;
</span><span class="cx">     }
</span><span class="cx">     ASSERT(m_derivedFontData-&gt;brokenIdeograph != this);
</span><del>-    return m_derivedFontData-&gt;brokenIdeograph;
</del><ins>+    return *m_derivedFontData-&gt;brokenIdeograph;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::nonSyntheticItalicFont() const
</del><ins>+const Font&amp; Font::nonSyntheticItalicFont() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_derivedFontData)
</span><span class="cx">         m_derivedFontData = std::make_unique&lt;DerivedFontData&gt;(isCustomFont());
</span><span class="lines">@@ -332,7 +332,7 @@
</span><span class="cx">         m_derivedFontData-&gt;nonSyntheticItalic = create(nonSyntheticItalicFontPlatformData, isCustomFont());
</span><span class="cx">     }
</span><span class="cx">     ASSERT(m_derivedFontData-&gt;nonSyntheticItalic != this);
</span><del>-    return m_derivedFontData-&gt;nonSyntheticItalic;
</del><ins>+    return *m_derivedFontData-&gt;nonSyntheticItalic;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #ifndef NDEBUG
</span><span class="lines">@@ -363,7 +363,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::createScaledFont(const FontDescription&amp; fontDescription, float scaleFactor) const
</del><ins>+RefPtr&lt;Font&gt; Font::createScaledFont(const FontDescription&amp; fontDescription, float scaleFactor) const
</ins><span class="cx"> {
</span><span class="cx">     if (isSVGFont())
</span><span class="cx">         return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFonth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.h (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.h        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/platform/graphics/Font.h        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -100,12 +100,12 @@
</span><span class="cx">     const OpenTypeVerticalData* verticalData() const { return m_verticalData.get(); }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;Font&gt; smallCapsFont(const FontDescription&amp;) const;
-    PassRefPtr&lt;Font&gt; emphasisMarkFont(const FontDescription&amp;) const;
-    PassRefPtr&lt;Font&gt; brokenIdeographFont() const;
-    PassRefPtr&lt;Font&gt; nonSyntheticItalicFont() const;
</del><ins>+    const Font* smallCapsFont(const FontDescription&amp;) const;
+    const Font* emphasisMarkFont(const FontDescription&amp;) const;
+    const Font&amp; brokenIdeographFont() const;
+    const Font&amp; nonSyntheticItalicFont() const;
</ins><span class="cx"> 
</span><del>-    PassRefPtr&lt;Font&gt; variantFont(const FontDescription&amp; description, FontVariant variant) const
</del><ins>+    const Font* variantFont(const FontDescription&amp; description, FontVariant variant) const
</ins><span class="cx">     {
</span><span class="cx">         switch (variant) {
</span><span class="cx">         case SmallCapsVariant:
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx">         case EmphasisMarkVariant:
</span><span class="cx">             return emphasisMarkFont(description);
</span><span class="cx">         case BrokenIdeographVariant:
</span><del>-            return brokenIdeographFont();
</del><ins>+            return &amp;brokenIdeographFont();
</ins><span class="cx">         case AutoVariant:
</span><span class="cx">         case NormalVariant:
</span><span class="cx">             break;
</span><span class="lines">@@ -122,8 +122,8 @@
</span><span class="cx">         return const_cast&lt;Font*&gt;(this);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;Font&gt; verticalRightOrientationFont() const;
-    PassRefPtr&lt;Font&gt; uprightOrientationFont() const;
</del><ins>+    const Font&amp; verticalRightOrientationFont() const;
+    const Font&amp; uprightOrientationFont() const;
</ins><span class="cx"> 
</span><span class="cx">     bool hasVerticalGlyphs() const { return m_hasVerticalGlyphs; }
</span><span class="cx">     bool isTextOrientationFallback() const { return m_isTextOrientationFallback; }
</span><span class="lines">@@ -228,8 +228,8 @@
</span><span class="cx"> 
</span><span class="cx">     void initCharWidths();
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;Font&gt; createScaledFont(const FontDescription&amp;, float scaleFactor) const;
-    PassRefPtr&lt;Font&gt; platformCreateScaledFont(const FontDescription&amp;, float scaleFactor) const;
</del><ins>+    RefPtr&lt;Font&gt; createScaledFont(const FontDescription&amp;, float scaleFactor) const;
+    RefPtr&lt;Font&gt; platformCreateScaledFont(const FontDescription&amp;, float scaleFactor) const;
</ins><span class="cx"> 
</span><span class="cx">     void removeFromSystemFallbackCache();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontCascadeFontscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontCascadeFonts.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontCascadeFonts.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/platform/graphics/FontCascadeFonts.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -285,7 +285,7 @@
</span><span class="cx"> #if PLATFORM(COCOA) || USE(CAIRO)
</span><span class="cx"> static GlyphData glyphDataForCJKCharacterWithoutSyntheticItalic(UChar32 character, GlyphData&amp; data)
</span><span class="cx"> {
</span><del>-    GlyphData nonItalicData = data.font-&gt;nonSyntheticItalicFont()-&gt;glyphDataForCharacter(character);
</del><ins>+    GlyphData nonItalicData = data.font-&gt;nonSyntheticItalicFont().glyphDataForCharacter(character);
</ins><span class="cx">     if (nonItalicData.font)
</span><span class="cx">         return nonItalicData;
</span><span class="cx">     return data;
</span><span class="lines">@@ -295,7 +295,7 @@
</span><span class="cx"> static GlyphData glyphDataForNonCJKCharacterWithGlyphOrientation(UChar32 character, NonCJKGlyphOrientation orientation, const GlyphData&amp; data)
</span><span class="cx"> {
</span><span class="cx">     if (orientation == NonCJKGlyphOrientationUpright || shouldIgnoreRotation(character)) {
</span><del>-        GlyphData uprightData = data.font-&gt;uprightOrientationFont()-&gt;glyphDataForCharacter(character);
</del><ins>+        GlyphData uprightData = data.font-&gt;uprightOrientationFont().glyphDataForCharacter(character);
</ins><span class="cx">         // If the glyphs are the same, then we know we can just use the horizontal glyph rotated vertically to be upright.
</span><span class="cx">         if (data.glyph == uprightData.glyph)
</span><span class="cx">             return data;
</span><span class="lines">@@ -304,7 +304,7 @@
</span><span class="cx">         if (uprightData.font)
</span><span class="cx">             return uprightData;
</span><span class="cx">     } else if (orientation == NonCJKGlyphOrientationVerticalRight) {
</span><del>-        GlyphData verticalRightData = data.font-&gt;verticalRightOrientationFont()-&gt;glyphDataForCharacter(character);
</del><ins>+        GlyphData verticalRightData = data.font-&gt;verticalRightOrientationFont().glyphDataForCharacter(character);
</ins><span class="cx">         // If the glyphs are distinct, we will make the assumption that the font has a vertical-right glyph baked
</span><span class="cx">         // into it.
</span><span class="cx">         if (data.glyph != verticalRightData.glyph)
</span><span class="lines">@@ -363,11 +363,9 @@
</span><span class="cx">         if (data.font) {
</span><span class="cx">             // The variantFont function should not normally return 0.
</span><span class="cx">             // But if it does, we will just render the capital letter big.
</span><del>-            RefPtr&lt;Font&gt; variantFont = data.font-&gt;variantFont(description, variant);
-            if (!variantFont)
-                return data;
-
-            return variantFont-&gt;glyphDataForCharacter(c);
</del><ins>+            if (const Font* variantFont = data.font-&gt;variantFont(description, variant))
+                return variantFont-&gt;glyphDataForCharacter(c);
+            return data;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaFontCascadeCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -719,21 +719,21 @@
</span><span class="cx">             if (font-&gt;platformData().orientation() == Vertical) {
</span><span class="cx">                 if (isCJKIdeographOrSymbol(baseCharacter) &amp;&amp; !font-&gt;hasVerticalGlyphs()) {
</span><span class="cx">                     variant = BrokenIdeographVariant;
</span><del>-                    font = font-&gt;brokenIdeographFont().get();
</del><ins>+                    font = &amp;font-&gt;brokenIdeographFont();
</ins><span class="cx">                 } else if (m_fontDescription.nonCJKGlyphOrientation() == NonCJKGlyphOrientationVerticalRight) {
</span><del>-                    Font* verticalRightFont = font-&gt;verticalRightOrientationFont().get();
-                    Glyph verticalRightGlyph = verticalRightFont-&gt;glyphForCharacter(baseCharacter);
</del><ins>+                    const Font&amp; verticalRightFont = font-&gt;verticalRightOrientationFont();
+                    Glyph verticalRightGlyph = verticalRightFont.glyphForCharacter(baseCharacter);
</ins><span class="cx">                     if (verticalRightGlyph == baseCharacterGlyphData.glyph)
</span><del>-                        font = verticalRightFont;
</del><ins>+                        font = &amp;verticalRightFont;
</ins><span class="cx">                 } else {
</span><del>-                    Font* uprightFont = font-&gt;uprightOrientationFont().get();
-                    Glyph uprightGlyph = uprightFont-&gt;glyphForCharacter(baseCharacter);
</del><ins>+                    const Font&amp; uprightFont = font-&gt;uprightOrientationFont();
+                    Glyph uprightGlyph = uprightFont.glyphForCharacter(baseCharacter);
</ins><span class="cx">                     if (uprightGlyph != baseCharacterGlyphData.glyph)
</span><del>-                        font = uprightFont;
</del><ins>+                        font = &amp;uprightFont;
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         } else {
</span><del>-            if (const Font* variantFont = font-&gt;variantFont(m_fontDescription, variant).get())
</del><ins>+            if (const Font* variantFont = font-&gt;variantFont(m_fontDescription, variant))
</ins><span class="cx">                 font = variantFont;
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaFontCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -245,7 +245,7 @@
</span><span class="cx">         else
</span><span class="cx">             xHeight = scaleEmToUnits(CGFontGetXHeight(m_platformData.cgFont()), unitsPerEm) * pointSize;
</span><span class="cx">     } else
</span><del>-        xHeight = verticalRightOrientationFont()-&gt;fontMetrics().xHeight();
</del><ins>+        xHeight = verticalRightOrientationFont().fontMetrics().xHeight();
</ins><span class="cx"> 
</span><span class="cx">     m_fontMetrics.setUnitsPerEm(unitsPerEm);
</span><span class="cx">     m_fontMetrics.setAscent(ascent);
</span><span class="lines">@@ -308,7 +308,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp;, float scaleFactor) const
</del><ins>+RefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp;, float scaleFactor) const
</ins><span class="cx"> {
</span><span class="cx"> #if !CORETEXT_WEB_FONTS
</span><span class="cx">     if (isCustomFont()) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsfreetypeSimpleFontDataFreeTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">     initCharWidths();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp; fontDescription, float scaleFactor) const
</del><ins>+RefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp; fontDescription, float scaleFactor) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_platformData.scaledFont());
</span><span class="cx">     FontDescription scaledFontDescription = fontDescription;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinSimpleFontDataWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx">     delete m_scriptFontProperties;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp; fontDescription, float scaleFactor) const
</del><ins>+RefPtr&lt;Font&gt; Font::platformCreateScaledFont(const FontDescription&amp; fontDescription, float scaleFactor) const
</ins><span class="cx"> {
</span><span class="cx">     float scaledSize = scaleFactor * m_platformData.size();
</span><span class="cx">     if (isCustomFont()) {
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGFontFaceElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGFontFaceElement.h (191870 => 191871)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGFontFaceElement.h        2015-11-02 00:48:03 UTC (rev 191870)
+++ trunk/Source/WebCore/svg/SVGFontFaceElement.h        2015-11-02 00:52:46 UTC (rev 191871)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     SVGFontElement* associatedFontElement() const;
</span><span class="cx">     void rebuildFontFace();
</span><span class="cx">     
</span><del>-    StyleRuleFontFace* fontFaceRule() const { return m_fontFaceRule.get(); }
</del><ins>+    const StyleRuleFontFace&amp; fontFaceRule() const { return m_fontFaceRule.get(); }
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     SVGFontFaceElement(const QualifiedName&amp;, Document&amp;);
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool rendererIsNeeded(const RenderStyle&amp;) override { return false; }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;StyleRuleFontFace&gt; m_fontFaceRule;
</del><ins>+    Ref&lt;StyleRuleFontFace&gt; m_fontFaceRule;
</ins><span class="cx">     SVGFontElement* m_fontElement;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>