<!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>[177955] 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/177955">177955</a></dd>
<dt>Author</dt> <dd>antti@apple.com</dd>
<dt>Date</dt> <dd>2015-01-06 03:23:58 -0800 (Tue, 06 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Font::primaryFontData() should return a reference
https://bugs.webkit.org/show_bug.cgi?id=140081

Reviewed by Darin Adler.

It is not null.

Also rename primaryFont() -&gt; primaryFontData().

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(AXAttributeStringSetStyle):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetStyle):
* bindings/objc/DOM.mm:
(-[DOMElement _font]):
* editing/cocoa/HTMLConverter.mm:
(_font):
(WebCore::editingAttributedStringFromRange):
* editing/ios/EditorIOS.mm:
(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontForSelection):
(WebCore::Editor::fontAttributesForSelectionStart):
* platform/graphics/Font.cpp:
(WebCore::Font::fastAverageCharWidthIfAvailable):
* platform/graphics/Font.h:
(WebCore::Font::fontMetrics):
(WebCore::Font::spaceWidth):
(WebCore::Font::tabWidth):
(WebCore::Font::primaryFontData):
(WebCore::Font::primaryFont): Deleted.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::primaryFontHasGlyphForCharacter):
* platform/graphics/FontGlyphs.cpp:
(WebCore::FontGlyphs::determinePitch):
(WebCore::FontGlyphs::glyphDataForSystemFallback):
(WebCore::FontGlyphs::glyphDataForCharacter):
* platform/graphics/FontGlyphs.h:
(WebCore::FontGlyphs::primaryFontData):
(WebCore::FontGlyphs::primarySimpleFontData):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::advance):
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* platform/graphics/mac/ComplexTextController.h:
(WebCore::ComplexTextController::ComplexTextRun::create):
(WebCore::ComplexTextController::ComplexTextRun::fontData):
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::primaryFontDataIsSystemFont):
* platform/graphics/opentype/OpenTypeMathData.cpp:
* platform/graphics/opentype/OpenTypeMathData.h:
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::requiresIdeographicBaseline):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::constructTextRun):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustLogicalLeftOffsetForLine):
(WebCore::RenderBlock::adjustLogicalRightOffsetForLine):
(WebCore::constructTextRunInternal):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
* rendering/RenderThemeIOS.mm:
(WebCore::adjustInputElementButtonStyle):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::ascentAndDescentForBox):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack):
(WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator):
(WebCore::RenderMathMLOperator::findStretchyData):
(WebCore::RenderMathMLOperator::trailingSpaceError):
* rendering/mathml/RenderMathMLRadicalOperator.cpp:
(WebCore::RenderMathMLRadicalOperator::stretchTo):
(WebCore::RenderMathMLRadicalOperator::computePreferredLogicalWidths):
(WebCore::RenderMathMLRadicalOperator::computeLogicalHeight):
(WebCore::RenderMathMLRadicalOperator::paint):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::updateStyle):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::constructTextRun):
* rendering/svg/SVGTextLayoutEngineSpacing.cpp:
(WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning):
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::constructTextRun):
(WebCore::SVGTextMetrics::SVGTextMetrics):
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::missingGlyphForFont):
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm">trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm">trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm</a></li>
<li><a href="#trunkSourceWebCorebindingsobjcDOMmm">trunk/Source/WebCore/bindings/objc/DOM.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaHTMLConvertermm">trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmacEditorMacmm">trunk/Source/WebCore/editing/mac/EditorMac.mm</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="#trunkSourceWebCoreplatformgraphicsFontFastPathcpp">trunk/Source/WebCore/platform/graphics/FontFastPath.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontGlyphscpp">trunk/Source/WebCore/platform/graphics/FontGlyphs.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsFontGlyphsh">trunk/Source/WebCore/platform/graphics/FontGlyphs.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsWidthIteratorcpp">trunk/Source/WebCore/platform/graphics/WidthIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp">trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacComplexTextControllerh">trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacComplexTextControllerCoreTextmm">trunk/Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacFontMacmm">trunk/Source/WebCore/platform/graphics/mac/FontMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatacpp">trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatah">trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinUniscribeControllercpp">trunk/Source/WebCore/platform/graphics/win/UniscribeController.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineFlowBoxcpp">trunk/Source/WebCore/rendering/InlineFlowBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineTextBoxcpp">trunk/Source/WebCore/rendering/InlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextControlSingleLinecpp">trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRootInlineBoxcpp">trunk/Source/WebCore/rendering/RootInlineBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingSimpleLineLayoutcpp">trunk/Source/WebCore/rendering/SimpleLineLayout.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLRadicalOperatorcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLRootcpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStylecpp">trunk/Source/WebCore/rendering/style/RenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp">trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextLayoutEngineSpacingcpp">trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextMetricscpp">trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextRunRenderingContextcpp">trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportPopupMenuMacmm">trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportmacWebPopupMenuMacmm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/ChangeLog        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -1,3 +1,100 @@
</span><ins>+2015-01-05  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        Font::primaryFontData() should return a reference
+        https://bugs.webkit.org/show_bug.cgi?id=140081
+
+        Reviewed by Darin Adler.
+
+        It is not null.
+
+        Also rename primaryFont() -&gt; primaryFontData().
+
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (AXAttributeStringSetStyle):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (AXAttributeStringSetStyle):
+        * bindings/objc/DOM.mm:
+        (-[DOMElement _font]):
+        * editing/cocoa/HTMLConverter.mm:
+        (_font):
+        (WebCore::editingAttributedStringFromRange):
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::fontForSelection):
+        (WebCore::Editor::fontAttributesForSelectionStart):
+        * editing/mac/EditorMac.mm:
+        (WebCore::Editor::fontForSelection):
+        (WebCore::Editor::fontAttributesForSelectionStart):
+        * platform/graphics/Font.cpp:
+        (WebCore::Font::fastAverageCharWidthIfAvailable):
+        * platform/graphics/Font.h:
+        (WebCore::Font::fontMetrics):
+        (WebCore::Font::spaceWidth):
+        (WebCore::Font::tabWidth):
+        (WebCore::Font::primaryFontData):
+        (WebCore::Font::primaryFont): Deleted.
+        * platform/graphics/FontFastPath.cpp:
+        (WebCore::Font::primaryFontHasGlyphForCharacter):
+        * platform/graphics/FontGlyphs.cpp:
+        (WebCore::FontGlyphs::determinePitch):
+        (WebCore::FontGlyphs::glyphDataForSystemFallback):
+        (WebCore::FontGlyphs::glyphDataForCharacter):
+        * platform/graphics/FontGlyphs.h:
+        (WebCore::FontGlyphs::primaryFontData):
+        (WebCore::FontGlyphs::primarySimpleFontData):
+        * platform/graphics/WidthIterator.cpp:
+        (WebCore::WidthIterator::advanceInternal):
+        * platform/graphics/mac/ComplexTextController.cpp:
+        (WebCore::ComplexTextController::advance):
+        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
+        * platform/graphics/mac/ComplexTextController.h:
+        (WebCore::ComplexTextController::ComplexTextRun::create):
+        (WebCore::ComplexTextController::ComplexTextRun::fontData):
+        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
+        (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
+        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
+        * platform/graphics/mac/FontMac.mm:
+        (WebCore::Font::primaryFontDataIsSystemFont):
+        * platform/graphics/opentype/OpenTypeMathData.cpp:
+        * platform/graphics/opentype/OpenTypeMathData.h:
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::requiresIdeographicBaseline):
+        * rendering/InlineTextBox.cpp:
+        (WebCore::InlineTextBox::constructTextRun):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::adjustLogicalLeftOffsetForLine):
+        (WebCore::RenderBlock::adjustLogicalRightOffsetForLine):
+        (WebCore::constructTextRunInternal):
+        * rendering/RenderTextControlSingleLine.cpp:
+        (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::adjustInputElementButtonStyle):
+        * rendering/RootInlineBox.cpp:
+        (WebCore::RootInlineBox::ascentAndDescentForBox):
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::canUseFor):
+        * rendering/mathml/RenderMathMLOperator.cpp:
+        (WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack):
+        (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator):
+        (WebCore::RenderMathMLOperator::findStretchyData):
+        (WebCore::RenderMathMLOperator::trailingSpaceError):
+        * rendering/mathml/RenderMathMLRadicalOperator.cpp:
+        (WebCore::RenderMathMLRadicalOperator::stretchTo):
+        (WebCore::RenderMathMLRadicalOperator::computePreferredLogicalWidths):
+        (WebCore::RenderMathMLRadicalOperator::computeLogicalHeight):
+        (WebCore::RenderMathMLRadicalOperator::paint):
+        * rendering/mathml/RenderMathMLRoot.cpp:
+        (WebCore::RenderMathMLRoot::updateStyle):
+        * rendering/svg/SVGInlineTextBox.cpp:
+        (WebCore::SVGInlineTextBox::constructTextRun):
+        * rendering/svg/SVGTextLayoutEngineSpacing.cpp:
+        (WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning):
+        * rendering/svg/SVGTextMetrics.cpp:
+        (WebCore::SVGTextMetrics::constructTextRun):
+        (WebCore::SVGTextMetrics::SVGTextMetrics):
+        * rendering/svg/SVGTextRunRenderingContext.cpp:
+        (WebCore::missingGlyphForFont):
+        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
+
</ins><span class="cx"> 2015-01-06  Shivakumar JM  &lt;shiva.jm@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix Unused parameter warning in Webcore bindings.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -1758,7 +1758,7 @@
</span><span class="cx">     RenderStyle&amp; style = renderer-&gt;style();
</span><span class="cx">     
</span><span class="cx">     // set basic font info
</span><del>-    AXAttributeStringSetFont(attrString, style.font().primaryFont()-&gt;getCTFont(), range);
</del><ins>+    AXAttributeStringSetFont(attrString, style.font().primaryFontData().getCTFont(), range);
</ins><span class="cx">                 
</span><span class="cx">     int decor = style.textDecorationsInEffect();
</span><span class="cx">     if ((decor &amp; (TextDecorationUnderline | TextDecorationLineThrough)) != 0) {
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -848,7 +848,7 @@
</span><span class="cx">     const RenderStyle&amp; style = renderer-&gt;style();
</span><span class="cx">     
</span><span class="cx">     // set basic font info
</span><del>-    AXAttributeStringSetFont(attrString, NSAccessibilityFontTextAttribute, style.font().primaryFont()-&gt;getNSFont(), range);
</del><ins>+    AXAttributeStringSetFont(attrString, NSAccessibilityFontTextAttribute, style.font().primaryFontData().getNSFont(), range);
</ins><span class="cx">     
</span><span class="cx">     // set basic colors
</span><span class="cx">     AXAttributeStringSetColor(attrString, NSAccessibilityForegroundColorTextAttribute, nsColor(style.visitedDependentColor(CSSPropertyColor)), range);
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsobjcDOMmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/objc/DOM.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/objc/DOM.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/bindings/objc/DOM.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -669,7 +669,7 @@
</span><span class="cx">     auto renderer = core(self)-&gt;renderer();
</span><span class="cx">     if (!renderer)
</span><span class="cx">         return nil;
</span><del>-    return renderer-&gt;style().font().primaryFont()-&gt;getNSFont();
</del><ins>+    return renderer-&gt;style().font().primaryFontData().getNSFont();
</ins><span class="cx"> }
</span><span class="cx"> #else
</span><span class="cx"> - (CTFontRef)_font
</span><span class="lines">@@ -677,7 +677,7 @@
</span><span class="cx">     RenderObject* renderer = core(self)-&gt;renderer();
</span><span class="cx">     if (!renderer)
</span><span class="cx">         return nil;
</span><del>-    return renderer-&gt;style().font().primaryFont()-&gt;getCTFont();
</del><ins>+    return renderer-&gt;style().font().primaryFontData().getCTFont();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaHTMLConvertermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -1114,7 +1114,7 @@
</span><span class="cx">     auto renderer = element.renderer();
</span><span class="cx">     if (!renderer)
</span><span class="cx">         return nil;
</span><del>-    return renderer-&gt;style().font().primaryFont()-&gt;getNSFont();
</del><ins>+    return renderer-&gt;style().font().primaryFontData().getNSFont();
</ins><span class="cx"> }
</span><span class="cx"> #else
</span><span class="cx"> static PlatformFont *_font(Element&amp; element)
</span><span class="lines">@@ -1122,7 +1122,7 @@
</span><span class="cx">     auto renderer = element.renderer();
</span><span class="cx">     if (!renderer)
</span><span class="cx">         return nil;
</span><del>-    return (PlatformFont *)renderer-&gt;style().font().primaryFont()-&gt;getCTFont();
</del><ins>+    return (PlatformFont *)renderer-&gt;style().font().primaryFontData().getCTFont();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -2594,10 +2594,10 @@
</span><span class="cx">             [attrs.get() setObject:[NSNumber numberWithInteger:NSUnderlineStyleSingle] forKey:NSUnderlineStyleAttributeName];
</span><span class="cx">         if (style.textDecorationsInEffect() &amp; TextDecorationLineThrough)
</span><span class="cx">             [attrs.get() setObject:[NSNumber numberWithInteger:NSUnderlineStyleSingle] forKey:NSStrikethroughStyleAttributeName];
</span><del>-        if (NSFont *font = style.font().primaryFont()-&gt;getNSFont())
</del><ins>+        if (NSFont *font = style.font().primaryFontData().getNSFont())
</ins><span class="cx">             [attrs.get() setObject:font forKey:NSFontAttributeName];
</span><span class="cx">         else
</span><del>-            [attrs.get() setObject:[fontManager convertFont:WebDefaultFont() toSize:style.font().primaryFont()-&gt;platformData().size()] forKey:NSFontAttributeName];
</del><ins>+            [attrs.get() setObject:[fontManager convertFont:WebDefaultFont() toSize:style.font().primaryFontData().platformData().size()] forKey:NSFontAttributeName];
</ins><span class="cx">         if (style.visitedDependentColor(CSSPropertyColor).alpha())
</span><span class="cx">             [attrs.get() setObject:nsColor(style.visitedDependentColor(CSSPropertyColor)) forKey:NSForegroundColorAttributeName];
</span><span class="cx">         else
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -211,9 +211,9 @@
</span><span class="cx">         Node* nodeToRemove;
</span><span class="cx">         RenderStyle* style = styleForSelectionStart(&amp;m_frame, nodeToRemove); // sets nodeToRemove
</span><span class="cx"> 
</span><del>-        const SimpleFontData* result = 0;
</del><ins>+        const SimpleFontData* result = nullptr;
</ins><span class="cx">         if (style)
</span><del>-            result = style-&gt;font().primaryFont();
</del><ins>+            result = &amp;style-&gt;font().primaryFontData();
</ins><span class="cx"> 
</span><span class="cx">         if (nodeToRemove) {
</span><span class="cx">             ExceptionCode ec;
</span><span class="lines">@@ -235,10 +235,10 @@
</span><span class="cx">             if (!renderer)
</span><span class="cx">                 continue;
</span><span class="cx">             // FIXME: Are there any node types that have renderers, but that we should be skipping?
</span><del>-            const SimpleFontData* primaryFont = renderer-&gt;style().font().primaryFont();
</del><ins>+            const SimpleFontData&amp; primaryFont = renderer-&gt;style().font().primaryFontData();
</ins><span class="cx">             if (!font)
</span><del>-                font = primaryFont;
-            else if (font != primaryFont) {
</del><ins>+                font = &amp;primaryFont;
+            else if (font != &amp;primaryFont) {
</ins><span class="cx">                 hasMultipleFonts = true;
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx"> 
</span><span class="cx">     NSMutableDictionary* result = [NSMutableDictionary dictionary];
</span><span class="cx">     
</span><del>-    CTFontRef font = style-&gt;font().primaryFont()-&gt;getCTFont();
</del><ins>+    CTFontRef font = style-&gt;font().primaryFontData().getCTFont();
</ins><span class="cx">     if (font)
</span><span class="cx">         [result setObject:(id)font forKey:NSFontAttributeName];
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacEditorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/EditorMac.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/EditorMac.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/editing/mac/EditorMac.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -113,9 +113,9 @@
</span><span class="cx">         Node* nodeToRemove;
</span><span class="cx">         RenderStyle* style = styleForSelectionStart(&amp;m_frame, nodeToRemove); // sets nodeToRemove
</span><span class="cx"> 
</span><del>-        const SimpleFontData* result = 0;
</del><ins>+        const SimpleFontData* result = nullptr;
</ins><span class="cx">         if (style)
</span><del>-            result = style-&gt;font().primaryFont();
</del><ins>+            result = &amp;style-&gt;font().primaryFontData();
</ins><span class="cx"> 
</span><span class="cx">         if (nodeToRemove)
</span><span class="cx">             nodeToRemove-&gt;remove(ASSERT_NO_EXCEPTION);
</span><span class="lines">@@ -135,10 +135,10 @@
</span><span class="cx">             if (!renderer)
</span><span class="cx">                 continue;
</span><span class="cx">             // FIXME: Are there any node types that have renderers, but that we should be skipping?
</span><del>-            const SimpleFontData* primaryFont = renderer-&gt;style().font().primaryFont();
</del><ins>+            const SimpleFontData&amp; primaryFont = renderer-&gt;style().font().primaryFontData();
</ins><span class="cx">             if (!font)
</span><del>-                font = primaryFont;
-            else if (font != primaryFont) {
</del><ins>+                font = &amp;primaryFont;
+            else if (font != &amp;primaryFont) {
</ins><span class="cx">                 hasMultipleFonts = true;
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="lines">@@ -160,8 +160,8 @@
</span><span class="cx">     if (style-&gt;visitedDependentColor(CSSPropertyBackgroundColor).isValid() &amp;&amp; style-&gt;visitedDependentColor(CSSPropertyBackgroundColor).alpha() != 0)
</span><span class="cx">         [result setObject:nsColor(style-&gt;visitedDependentColor(CSSPropertyBackgroundColor)) forKey:NSBackgroundColorAttributeName];
</span><span class="cx"> 
</span><del>-    if (style-&gt;font().primaryFont()-&gt;getNSFont())
-        [result setObject:style-&gt;font().primaryFont()-&gt;getNSFont() forKey:NSFontAttributeName];
</del><ins>+    if (style-&gt;font().primaryFontData().getNSFont())
+        [result setObject:style-&gt;font().primaryFontData().getNSFont() forKey:NSFontAttributeName];
</ins><span class="cx"> 
</span><span class="cx">     if (style-&gt;visitedDependentColor(CSSPropertyColor).isValid() &amp;&amp; style-&gt;visitedDependentColor(CSSPropertyColor) != Color::black)
</span><span class="cx">         [result setObject:nsColor(style-&gt;visitedDependentColor(CSSPropertyColor)) forKey:NSForegroundColorAttributeName];
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/Font.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -506,7 +506,7 @@
</span><span class="cx"> {
</span><span class="cx">     bool success = hasValidAverageCharWidth();
</span><span class="cx">     if (success)
</span><del>-        width = roundf(primaryFont()-&gt;avgCharWidth()); // FIXME: primaryFont() might not correspond to firstFamily().
</del><ins>+        width = roundf(primaryFontData().avgCharWidth()); // FIXME: primaryFontData() might not correspond to firstFamily().
</ins><span class="cx">     return success;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFonth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/Font.h (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/Font.h        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/Font.h        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -172,10 +172,10 @@
</span><span class="cx"> 
</span><span class="cx">     bool isPlatformFont() const { return m_glyphs-&gt;isForPlatformFont(); }
</span><span class="cx"> 
</span><del>-    const FontMetrics&amp; fontMetrics() const { return primaryFont()-&gt;fontMetrics(); }
-    float spaceWidth() const { return primaryFont()-&gt;spaceWidth() + m_letterSpacing; }
</del><ins>+    const FontMetrics&amp; fontMetrics() const { return primaryFontData().fontMetrics(); }
+    float spaceWidth() const { return primaryFontData().spaceWidth() + m_letterSpacing; }
</ins><span class="cx">     float tabWidth(const SimpleFontData&amp;, unsigned tabSize, float position) const;
</span><del>-    float tabWidth(unsigned tabSize, float position) const { return tabWidth(*primaryFont(), tabSize, position); }
</del><ins>+    float tabWidth(unsigned tabSize, float position) const { return tabWidth(primaryFontData(), tabSize, position); }
</ins><span class="cx">     bool hasValidAverageCharWidth() const;
</span><span class="cx">     bool fastAverageCharWidthIfAvailable(float &amp;width) const; // returns true on success
</span><span class="cx"> 
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx">     int emphasisMarkDescent(const AtomicString&amp;) const;
</span><span class="cx">     int emphasisMarkHeight(const AtomicString&amp;) const;
</span><span class="cx"> 
</span><del>-    const SimpleFontData* primaryFont() const;
</del><ins>+    const SimpleFontData&amp; primaryFontData() const;
</ins><span class="cx">     const FontData* fontDataAt(unsigned) const;
</span><span class="cx">     GlyphData glyphDataForCharacter(UChar32 c, bool mirror, FontDataVariant variant = AutoVariant) const
</span><span class="cx">     {
</span><span class="lines">@@ -192,7 +192,6 @@
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     const SimpleFontData* fontDataForCombiningCharacterSequence(const UChar*, size_t length, FontDataVariant) const;
</span><span class="cx"> #endif
</span><del>-    bool primaryFontHasGlyphForCharacter(UChar32) const;
</del><span class="cx"> 
</span><span class="cx">     static bool isCJKIdeograph(UChar32);
</span><span class="cx">     static bool isCJKIdeographOrSymbol(UChar32);
</span><span class="lines">@@ -357,7 +356,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline const SimpleFontData* Font::primaryFont() const
</del><ins>+inline const SimpleFontData&amp; Font::primaryFontData() const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_glyphs);
</span><span class="cx">     return m_glyphs-&gt;primarySimpleFontData(m_fontDescription);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontFastPathcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontFastPath.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontFastPath.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/FontFastPath.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -40,11 +40,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-bool Font::primaryFontHasGlyphForCharacter(UChar32 character) const
-{
-    return primaryFont()-&gt;glyphForCharacter(character);
-}
-
</del><span class="cx"> // FIXME: This function may not work if the emphasis mark uses a complex script, but none of the
</span><span class="cx"> // standard emphasis marks do so.
</span><span class="cx"> bool Font::getEmphasisMarkGlyphData(const AtomicString&amp; mark, GlyphData&amp; glyphData) const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontGlyphscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontGlyphs.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontGlyphs.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/FontGlyphs.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -75,11 +75,11 @@
</span><span class="cx"> 
</span><span class="cx"> void FontGlyphs::determinePitch(const FontDescription&amp; description)
</span><span class="cx"> {
</span><del>-    const FontData* fontData = primaryFontData(description);
-    if (is&lt;SimpleFontData&gt;(*fontData))
-        m_pitch = downcast&lt;SimpleFontData&gt;(*fontData).pitch();
</del><ins>+    const FontData&amp; fontData = *realizeFontDataAt(description, 0);
+    if (is&lt;SimpleFontData&gt;(fontData))
+        m_pitch = downcast&lt;SimpleFontData&gt;(fontData).pitch();
</ins><span class="cx">     else {
</span><del>-        const SegmentedFontData&amp; segmentedFontData = downcast&lt;SegmentedFontData&gt;(*fontData);
</del><ins>+        const SegmentedFontData&amp; segmentedFontData = downcast&lt;SegmentedFontData&gt;(fontData);
</ins><span class="cx">         unsigned numRanges = segmentedFontData.numRanges();
</span><span class="cx">         if (numRanges == 1)
</span><span class="cx">             m_pitch = segmentedFontData.rangeAt(0).fontData()-&gt;pitch();
</span><span class="lines">@@ -245,9 +245,10 @@
</span><span class="cx"> GlyphData FontGlyphs::glyphDataForSystemFallback(UChar32 c, const FontDescription&amp; description, FontDataVariant variant)
</span><span class="cx"> {
</span><span class="cx">     // System fallback is character-dependent.
</span><del>-    auto* originalFontData = primaryFontData(description)-&gt;simpleFontDataForCharacter(c);
</del><ins>+    auto&amp; primaryFontData = *realizeFontDataAt(description, 0);
+    auto* originalFontData = primaryFontData.simpleFontDataForCharacter(c);
</ins><span class="cx">     if (!originalFontData)
</span><del>-        originalFontData = &amp;primaryFontData(description)-&gt;simpleFontDataForFirstRange();
</del><ins>+        originalFontData = &amp;primaryFontData.simpleFontDataForFirstRange();
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;SimpleFontData&gt; systemFallbackFontData = originalFontData-&gt;systemFallbackFontDataForCharacter(c, description, m_isForPlatformFont);
</span><span class="cx">     if (!systemFallbackFontData)
</span><span class="lines">@@ -364,7 +365,7 @@
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx"> 
</span><span class="cx">     if (variant == AutoVariant) {
</span><del>-        if (description.smallCaps() &amp;&amp; !primarySimpleFontData(description)-&gt;isSVGFont()) {
</del><ins>+        if (description.smallCaps() &amp;&amp; !primarySimpleFontData(description).isSVGFont()) {
</ins><span class="cx">             UChar32 upperC = u_toupper(c);
</span><span class="cx">             if (upperC != c) {
</span><span class="cx">                 c = upperC;
</span><span class="lines">@@ -385,7 +386,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;GlyphPage&gt;&amp; cachedPage = pageNumber ? m_cachedPages.add(pageNumber, nullptr).iterator-&gt;value : m_cachedPageZero;
</span><span class="cx">     if (!cachedPage)
</span><del>-        cachedPage = glyphPageFromFontData(pageNumber, *primaryFontData(description));
</del><ins>+        cachedPage = glyphPageFromFontData(pageNumber, *realizeFontDataAt(description, 0));
</ins><span class="cx"> 
</span><span class="cx">     GlyphData glyphData = cachedPage ? cachedPage-&gt;glyphDataForCharacter(c) : GlyphData();
</span><span class="cx">     if (!glyphData.glyph) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsFontGlyphsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/FontGlyphs.h (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/FontGlyphs.h        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/FontGlyphs.h        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -67,8 +67,7 @@
</span><span class="cx">     WidthCache&amp; widthCache() { return m_widthCache; }
</span><span class="cx">     const WidthCache&amp; widthCache() const { return m_widthCache; }
</span><span class="cx"> 
</span><del>-    const SimpleFontData* primarySimpleFontData(const FontDescription&amp;);
-    const FontData* primaryFontData(const FontDescription&amp; description) { return realizeFontDataAt(description, 0); }
</del><ins>+    const SimpleFontData&amp; primarySimpleFontData(const FontDescription&amp;);
</ins><span class="cx">     WEBCORE_EXPORT const FontData* realizeFontDataAt(const FontDescription&amp;, unsigned index);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -106,16 +105,16 @@
</span><span class="cx">     return m_pitch == FixedPitch;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-inline const SimpleFontData* FontGlyphs::primarySimpleFontData(const FontDescription&amp; description)
</del><ins>+inline const SimpleFontData&amp; FontGlyphs::primarySimpleFontData(const FontDescription&amp; description)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     if (!m_cachedPrimarySimpleFontData) {
</span><del>-        auto* fontData = primaryFontData(description);
-        m_cachedPrimarySimpleFontData = fontData-&gt;simpleFontDataForCharacter(' ');
</del><ins>+        auto&amp; fontData = *realizeFontDataAt(description, 0);
+        m_cachedPrimarySimpleFontData = fontData.simpleFontDataForCharacter(' ');
</ins><span class="cx">         if (!m_cachedPrimarySimpleFontData)
</span><del>-            m_cachedPrimarySimpleFontData = &amp;fontData-&gt;simpleFontDataForFirstRange();
</del><ins>+            m_cachedPrimarySimpleFontData = &amp;fontData.simpleFontDataForFirstRange();
</ins><span class="cx">     }
</span><del>-    return m_cachedPrimarySimpleFontData;
</del><ins>+    return *m_cachedPrimarySimpleFontData;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsWidthIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/WidthIterator.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/WidthIterator.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/WidthIterator.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -166,8 +166,8 @@
</span><span class="cx">     float lastRoundingWidth = m_finalRoundingWidth;
</span><span class="cx">     FloatRect bounds;
</span><span class="cx"> 
</span><del>-    const SimpleFontData* primaryFont = m_font-&gt;primaryFont();
-    const SimpleFontData* lastFontData = primaryFont;
</del><ins>+    const SimpleFontData&amp; primaryFontData = m_font-&gt;primaryFontData();
+    const SimpleFontData* lastFontData = &amp;primaryFontData;
</ins><span class="cx">     int lastGlyphCount = glyphBuffer ? glyphBuffer-&gt;size() : 0;
</span><span class="cx"> 
</span><span class="cx">     UChar32 character = 0;
</span><span class="lines">@@ -211,14 +211,14 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             lastFontData = fontData;
</span><del>-            if (m_fallbackFonts &amp;&amp; fontData != primaryFont) {
</del><ins>+            if (m_fallbackFonts &amp;&amp; fontData != &amp;primaryFontData) {
</ins><span class="cx">                 // FIXME: This does a little extra work that could be avoided if
</span><span class="cx">                 // glyphDataForCharacter() returned whether it chose to use a small caps font.
</span><span class="cx">                 if (!m_font-&gt;isSmallCaps() || character == u_toupper(character))
</span><span class="cx">                     m_fallbackFonts-&gt;add(fontData);
</span><span class="cx">                 else {
</span><span class="cx">                     const GlyphData&amp; uppercaseGlyphData = m_font-&gt;glyphDataForCharacter(u_toupper(character), rtl);
</span><del>-                    if (uppercaseGlyphData.fontData != primaryFont)
</del><ins>+                    if (uppercaseGlyphData.fontData != &amp;primaryFontData)
</ins><span class="cx">                         m_fallbackFonts-&gt;add(uppercaseGlyphData.fontData);
</span><span class="cx">                 }
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacComplexTextControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -494,8 +494,8 @@
</span><span class="cx">         size_t glyphCount = complexTextRun.glyphCount();
</span><span class="cx">         unsigned g = ltr ? m_glyphInCurrentRun : glyphCount - 1 - m_glyphInCurrentRun;
</span><span class="cx">         unsigned k = leftmostGlyph + g;
</span><del>-        if (fallbackFonts &amp;&amp; complexTextRun.fontData() != m_font.primaryFont())
-            fallbackFonts-&gt;add(complexTextRun.fontData());
</del><ins>+        if (fallbackFonts &amp;&amp; &amp;complexTextRun.fontData() != &amp;m_font.primaryFontData())
+            fallbackFonts-&gt;add(&amp;complexTextRun.fontData());
</ins><span class="cx"> 
</span><span class="cx">         // We must store the initial advance for the first glyph we are going to draw.
</span><span class="cx">         // When leftmostGlyph is 0, it represents the first glyph to draw, taking into
</span><span class="lines">@@ -520,7 +520,7 @@
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><span class="cx">             if (glyphBuffer &amp;&amp; !m_characterInCurrentGlyph)
</span><del>-                glyphBuffer-&gt;add(m_adjustedGlyphs[k], complexTextRun.fontData(), adjustedAdvance, complexTextRun.indexAt(m_glyphInCurrentRun));
</del><ins>+                glyphBuffer-&gt;add(m_adjustedGlyphs[k], &amp;complexTextRun.fontData(), adjustedAdvance, complexTextRun.indexAt(m_glyphInCurrentRun));
</ins><span class="cx"> 
</span><span class="cx">             unsigned oldCharacterInCurrentGlyph = m_characterInCurrentGlyph;
</span><span class="cx">             m_characterInCurrentGlyph = std::min(m_currentCharacter - complexTextRun.stringLocation(), glyphEndOffset) - glyphStartOffset;
</span><span class="lines">@@ -566,9 +566,9 @@
</span><span class="cx">     for (size_t r = 0; r &lt; runCount; ++r) {
</span><span class="cx">         ComplexTextRun&amp; complexTextRun = *m_complexTextRuns[r];
</span><span class="cx">         unsigned glyphCount = complexTextRun.glyphCount();
</span><del>-        const SimpleFontData* fontData = complexTextRun.fontData();
</del><ins>+        const SimpleFontData&amp; fontData = complexTextRun.fontData();
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>-        bool isEmoji = fontData-&gt;platformData().m_isEmoji;
</del><ins>+        bool isEmoji = fontData.platformData().m_isEmoji;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">         // Represent the initial advance for a text run by adjusting the advance
</span><span class="lines">@@ -588,8 +588,8 @@
</span><span class="cx">         const CGSize* advances = complexTextRun.advances();
</span><span class="cx"> 
</span><span class="cx">         bool lastRun = r + 1 == runCount;
</span><del>-        bool roundsAdvances = !m_font.isPrinterFont() &amp;&amp; fontData-&gt;platformData().roundsGlyphAdvances();
-        float spaceWidth = fontData-&gt;spaceWidth() - fontData-&gt;syntheticBoldOffset();
</del><ins>+        bool roundsAdvances = !m_font.isPrinterFont() &amp;&amp; fontData.platformData().roundsGlyphAdvances();
+        float spaceWidth = fontData.spaceWidth() - fontData.syntheticBoldOffset();
</ins><span class="cx">         CGFloat roundedSpaceWidth = roundCGFloat(spaceWidth);
</span><span class="cx">         const UChar* cp = complexTextRun.characters();
</span><span class="cx">         CGPoint glyphOrigin = CGPointZero;
</span><span class="lines">@@ -616,7 +616,7 @@
</span><span class="cx">                 nextCh = *(m_complexTextRuns[r + 1]-&gt;characters() + m_complexTextRuns[r + 1]-&gt;indexAt(0));
</span><span class="cx"> 
</span><span class="cx">             bool treatAsSpace = Font::treatAsSpace(ch);
</span><del>-            CGGlyph glyph = treatAsSpace ? fontData-&gt;spaceGlyph() : glyphs[i];
</del><ins>+            CGGlyph glyph = treatAsSpace ? fontData.spaceGlyph() : glyphs[i];
</ins><span class="cx">             CGSize advance = treatAsSpace ? CGSizeMake(spaceWidth, advances[i].height) : advances[i];
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">             if (isEmoji &amp;&amp; advance.width)
</span><span class="lines">@@ -624,25 +624,25 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">             if (ch == '\t' &amp;&amp; m_run.allowTabs())
</span><del>-                advance.width = m_font.tabWidth(*fontData, m_run.tabSize(), m_run.xPos() + m_totalWidth + widthSinceLastCommit);
</del><ins>+                advance.width = m_font.tabWidth(fontData, m_run.tabSize(), m_run.xPos() + m_totalWidth + widthSinceLastCommit);
</ins><span class="cx">             else if (Font::treatAsZeroWidthSpace(ch) &amp;&amp; !treatAsSpace) {
</span><span class="cx">                 advance.width = 0;
</span><del>-                glyph = fontData-&gt;spaceGlyph();
</del><ins>+                glyph = fontData.spaceGlyph();
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             float roundedAdvanceWidth = roundf(advance.width);
</span><span class="cx">             if (roundsAdvances)
</span><span class="cx">                 advance.width = roundedAdvanceWidth;
</span><span class="cx"> 
</span><del>-            advance.width += fontData-&gt;syntheticBoldOffset();
</del><ins>+            advance.width += fontData.syntheticBoldOffset();
</ins><span class="cx"> 
</span><span class="cx">  
</span><span class="cx">             // We special case spaces in two ways when applying word rounding. 
</span><span class="cx">             // First, we round spaces to an adjusted width in all fonts. 
</span><span class="cx">             // Second, in fixed-pitch fonts we ensure that all glyphs that 
</span><span class="cx">             // match the width of the space glyph have the same width as the space glyph. 
</span><del>-            if (m_run.applyWordRounding() &amp;&amp; roundedAdvanceWidth == roundedSpaceWidth &amp;&amp; (fontData-&gt;pitch() == FixedPitch || glyph == fontData-&gt;spaceGlyph()))
-                advance.width = fontData-&gt;adjustedSpaceWidth();
</del><ins>+            if (m_run.applyWordRounding() &amp;&amp; roundedAdvanceWidth == roundedSpaceWidth &amp;&amp; (fontData.pitch() == FixedPitch || glyph == fontData.spaceGlyph()))
+                advance.width = fontData.adjustedSpaceWidth();
</ins><span class="cx"> 
</span><span class="cx">             if (hasExtraSpacing) {
</span><span class="cx">                 // If we're a glyph with an advance, go ahead and add in letter-spacing.
</span><span class="lines">@@ -716,7 +716,7 @@
</span><span class="cx">             m_adjustedAdvances.append(advance);
</span><span class="cx">             m_adjustedGlyphs.append(glyph);
</span><span class="cx">             
</span><del>-            FloatRect glyphBounds = fontData-&gt;boundsForGlyph(glyph);
</del><ins>+            FloatRect glyphBounds = fontData.boundsForGlyph(glyph);
</ins><span class="cx">             glyphBounds.move(glyphOrigin.x, glyphOrigin.y);
</span><span class="cx">             m_minGlyphBoundingBoxX = std::min(m_minGlyphBoundingBoxX, glyphBounds.x());
</span><span class="cx">             m_maxGlyphBoundingBoxX = std::max(m_maxGlyphBoundingBoxX, glyphBounds.maxX());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacComplexTextControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.h (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.h        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/mac/ComplexTextController.h        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -73,18 +73,18 @@
</span><span class="cx"> private:
</span><span class="cx">     class ComplexTextRun : public RefCounted&lt;ComplexTextRun&gt; {
</span><span class="cx">     public:
</span><del>-        static Ref&lt;ComplexTextRun&gt; create(CTRunRef ctRun, const SimpleFontData* fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange)
</del><ins>+        static Ref&lt;ComplexTextRun&gt; create(CTRunRef ctRun, const SimpleFontData&amp; fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange)
</ins><span class="cx">         {
</span><span class="cx">             return adoptRef(*new ComplexTextRun(ctRun, fontData, characters, stringLocation, stringLength, runRange));
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        static Ref&lt;ComplexTextRun&gt; create(const SimpleFontData* fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, bool ltr)
</del><ins>+        static Ref&lt;ComplexTextRun&gt; create(const SimpleFontData&amp; fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, bool ltr)
</ins><span class="cx">         {
</span><span class="cx">             return adoptRef(*new ComplexTextRun(fontData, characters, stringLocation, stringLength, ltr));
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         unsigned glyphCount() const { return m_glyphCount; }
</span><del>-        const SimpleFontData* fontData() const { return m_fontData; }
</del><ins>+        const SimpleFontData&amp; fontData() const { return m_fontData; }
</ins><span class="cx">         const UChar* characters() const { return m_characters; }
</span><span class="cx">         unsigned stringLocation() const { return m_stringLocation; }
</span><span class="cx">         size_t stringLength() const { return m_stringLength; }
</span><span class="lines">@@ -100,11 +100,11 @@
</span><span class="cx">         void setIsNonMonotonic();
</span><span class="cx"> 
</span><span class="cx">     private:
</span><del>-        ComplexTextRun(CTRunRef, const SimpleFontData*, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange);
-        ComplexTextRun(const SimpleFontData*, const UChar* characters, unsigned stringLocation, size_t stringLength, bool ltr);
</del><ins>+        ComplexTextRun(CTRunRef, const SimpleFontData&amp;, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange);
+        ComplexTextRun(const SimpleFontData&amp;, const UChar* characters, unsigned stringLocation, size_t stringLength, bool ltr);
</ins><span class="cx"> 
</span><span class="cx">         unsigned m_glyphCount;
</span><del>-        const SimpleFontData* m_fontData;
</del><ins>+        const SimpleFontData&amp; m_fontData;
</ins><span class="cx">         const UChar* m_characters;
</span><span class="cx">         unsigned m_stringLocation;
</span><span class="cx">         size_t m_stringLength;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacComplexTextControllerCoreTextmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-ComplexTextController::ComplexTextRun::ComplexTextRun(CTRunRef ctRun, const SimpleFontData* fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange)
</del><ins>+ComplexTextController::ComplexTextRun::ComplexTextRun(CTRunRef ctRun, const SimpleFontData&amp; fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange)
</ins><span class="cx">     : m_fontData(fontData)
</span><span class="cx">     , m_characters(characters)
</span><span class="cx">     , m_stringLocation(stringLocation)
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Missing glyphs run constructor. Core Text will not generate a run of missing glyphs, instead falling back on
</span><span class="cx"> // glyphs from LastResort. We want to use the primary font's missing glyph in order to match the fast text code path.
</span><del>-ComplexTextController::ComplexTextRun::ComplexTextRun(const SimpleFontData* fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, bool ltr)
</del><ins>+ComplexTextController::ComplexTextRun::ComplexTextRun(const SimpleFontData&amp; fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, bool ltr)
</ins><span class="cx">     : m_fontData(fontData)
</span><span class="cx">     , m_characters(characters)
</span><span class="cx">     , m_stringLocation(stringLocation)
</span><span class="lines">@@ -163,7 +163,7 @@
</span><span class="cx">     // Synthesize a run of missing glyphs.
</span><span class="cx">     m_glyphsVector.fill(0, m_glyphCount);
</span><span class="cx">     m_glyphs = m_glyphsVector.data();
</span><del>-    m_advancesVector.fill(CGSizeMake(m_fontData-&gt;widthForGlyph(0), 0), m_glyphCount);
</del><ins>+    m_advancesVector.fill(CGSizeMake(m_fontData.widthForGlyph(0), 0), m_glyphCount);
</ins><span class="cx">     m_advances = m_advancesVector.data();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -188,7 +188,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!fontData) {
</span><span class="cx">         // Create a run of missing glyphs from the primary font.
</span><del>-        m_complexTextRuns.append(ComplexTextRun::create(m_font.primaryFont(), cp, stringLocation, length, m_run.ltr()));
</del><ins>+        m_complexTextRuns.append(ComplexTextRun::create(m_font.primaryFontData(), cp, stringLocation, length, m_run.ltr()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -273,7 +273,7 @@
</span><span class="cx">                     // NSFontRenderingMode.
</span><span class="cx">                     RetainPtr&lt;CFStringRef&gt; fontName = adoptCF(CTFontCopyPostScriptName(runFont));
</span><span class="cx">                     if (CFEqual(fontName.get(), CFSTR(&quot;LastResort&quot;))) {
</span><del>-                        m_complexTextRuns.append(ComplexTextRun::create(m_font.primaryFont(), cp, stringLocation + runRange.location, runRange.length, m_run.ltr()));
</del><ins>+                        m_complexTextRuns.append(ComplexTextRun::create(m_font.primaryFontData(), cp, stringLocation + runRange.location, runRange.length, m_run.ltr()));
</ins><span class="cx">                         continue;
</span><span class="cx">                     }
</span><span class="cx">                     runFontData = fontCache().getCachedFontData(m_font.fontDescription(), fontName.get(), false, FontCache::DoNotRetain).get();
</span><span class="lines">@@ -289,14 +289,14 @@
</span><span class="cx">                     ASSERT(runFontData);
</span><span class="cx"> #endif
</span><span class="cx">                 }
</span><del>-                if (m_fallbackFonts &amp;&amp; runFontData != m_font.primaryFont())
</del><ins>+                if (m_fallbackFonts &amp;&amp; runFontData != &amp;m_font.primaryFontData())
</ins><span class="cx">                     m_fallbackFonts-&gt;add(runFontData);
</span><span class="cx">             }
</span><span class="cx">         }
</span><del>-        if (m_fallbackFonts &amp;&amp; runFontData != m_font.primaryFont())
</del><ins>+        if (m_fallbackFonts &amp;&amp; runFontData != &amp;m_font.primaryFontData())
</ins><span class="cx">             m_fallbackFonts-&gt;add(fontData);
</span><span class="cx"> 
</span><del>-        m_complexTextRuns.append(ComplexTextRun::create(ctRun, runFontData, cp, stringLocation, length, runRange));
</del><ins>+        m_complexTextRuns.append(ComplexTextRun::create(ctRun, *runFontData, cp, stringLocation, length, runRange));
</ins><span class="cx">     }
</span><span class="cx"> }
</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 (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/FontMac.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/mac/FontMac.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -593,8 +593,8 @@
</span><span class="cx"> bool Font::primaryFontDataIsSystemFont() const
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt; 1090
</span><del>-    const auto* fontData = primaryFont();
-    return !fontData-&gt;isSVGFont() &amp;&amp; CTFontDescriptorIsSystemUIFont(adoptCF(CTFontCopyFontDescriptor(fontData-&gt;platformData().ctFont())).get());
</del><ins>+    const auto&amp; fontData = primaryFontData();
+    return !fontData.isSVGFont() &amp;&amp; CTFontDescriptorIsSystemUIFont(adoptCF(CTFontCopyFontDescriptor(fontData.platformData().ctFont())).get());
</ins><span class="cx"> #else
</span><span class="cx">     // System fonts are hidden by having a name that begins with a period, so simply search
</span><span class="cx">     // for that here rather than try to keep the list up to date.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(OPENTYPE_MATH)
</span><del>-float OpenTypeMathData::getMathConstant(const SimpleFontData* font, MathConstant constant) const
</del><ins>+float OpenTypeMathData::getMathConstant(const SimpleFontData&amp; font, MathConstant constant) const
</ins><span class="cx"> {
</span><span class="cx">     int32_t value = 0;
</span><span class="cx"> 
</span><span class="lines">@@ -286,9 +286,9 @@
</span><span class="cx">     if (constant == ScriptPercentScaleDown || constant == ScriptScriptPercentScaleDown || constant == RadicalDegreeBottomRaisePercent)
</span><span class="cx">         return value / 100.0;
</span><span class="cx"> 
</span><del>-    return value * font-&gt;sizePerUnit();
</del><ins>+    return value * font.sizePerUnit();
</ins><span class="cx"> #else
</span><del>-float OpenTypeMathData::getMathConstant(const SimpleFontData*, MathConstant) const
</del><ins>+float OpenTypeMathData::getMathConstant(const SimpleFontData&amp;, MathConstant) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return 0;
</span><span class="lines">@@ -296,7 +296,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(OPENTYPE_MATH)
</span><del>-float OpenTypeMathData::getItalicCorrection(const SimpleFontData* font, Glyph glyph) const
</del><ins>+float OpenTypeMathData::getItalicCorrection(const SimpleFontData&amp; font, Glyph glyph) const
</ins><span class="cx"> {
</span><span class="cx">     const OpenType::MATHTable* math = OpenType::validateTable&lt;OpenType::MATHTable&gt;(m_mathBuffer);
</span><span class="cx">     ASSERT(math);
</span><span class="lines">@@ -308,9 +308,9 @@
</span><span class="cx">     if (!mathItalicsCorrectionInfo)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return mathItalicsCorrectionInfo-&gt;getItalicCorrection(*m_mathBuffer, glyph) * font-&gt;sizePerUnit();
</del><ins>+    return mathItalicsCorrectionInfo-&gt;getItalicCorrection(*m_mathBuffer, glyph) * font.sizePerUnit();
</ins><span class="cx"> #else
</span><del>-float OpenTypeMathData::getItalicCorrection(const SimpleFontData*, Glyph) const
</del><ins>+float OpenTypeMathData::getItalicCorrection(const SimpleFontData&amp;, Glyph) const
</ins><span class="cx"> {
</span><span class="cx">     ASSERT_NOT_REACHED();
</span><span class="cx">     return 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsopentypeOpenTypeMathDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/opentype/OpenTypeMathData.h        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -113,8 +113,8 @@
</span><span class="cx">         bool isExtender;
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    float getMathConstant(const SimpleFontData*, MathConstant) const;
-    float getItalicCorrection(const SimpleFontData*, Glyph) const;
</del><ins>+    float getMathConstant(const SimpleFontData&amp;, MathConstant) const;
+    float getItalicCorrection(const SimpleFontData&amp;, Glyph) const;
</ins><span class="cx">     void getMathVariants(Glyph, bool isVertical, Vector&lt;Glyph&gt;&amp; sizeVariants, Vector&lt;AssemblyPart&gt;&amp; assemblyParts) const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinUniscribeControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/UniscribeController.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/UniscribeController.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/platform/graphics/win/UniscribeController.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx">                 smallCapsBuffer[index] = forceSmallCaps ? c : newC;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        if (m_fallbackFonts &amp;&amp; fontData &amp;&amp; nextFontData != fontData &amp;&amp; fontData != m_font.primaryFont())
</del><ins>+        if (m_fallbackFonts &amp;&amp; fontData &amp;&amp; nextFontData != fontData &amp;&amp; fontData != &amp;m_font.primaryFontData())
</ins><span class="cx">             m_fallbackFonts-&gt;add(fontData);
</span><span class="cx"> 
</span><span class="cx">         if (nextFontData != fontData || nextIsSmallCaps != isSmallCaps) {
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx">     
</span><span class="cx">     int itemLength = m_run.rtl() ? indexOfFontTransition + 1 : length - indexOfFontTransition;
</span><span class="cx">     if (itemLength) {
</span><del>-        if (m_fallbackFonts &amp;&amp; nextFontData &amp;&amp; nextFontData != m_font.primaryFont())
</del><ins>+        if (m_fallbackFonts &amp;&amp; nextFontData &amp;&amp; nextFontData != &amp;m_font.primaryFontData())
</ins><span class="cx">             m_fallbackFonts-&gt;add(nextFontData);
</span><span class="cx"> 
</span><span class="cx">         int itemStart = m_run.rtl() ? 0 : indexOfFontTransition;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineFlowBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineFlowBox.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -449,7 +449,7 @@
</span><span class="cx"> 
</span><span class="cx">     const RenderStyle&amp; lineStyle = this-&gt;lineStyle();
</span><span class="cx">     if (lineStyle.fontDescription().nonCJKGlyphOrientation() == NonCJKGlyphOrientationUpright
</span><del>-        || lineStyle.font().primaryFont()-&gt;hasVerticalGlyphs())
</del><ins>+        || lineStyle.font().primaryFontData().hasVerticalGlyphs())
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     for (InlineBox* child = firstChild(); child; child = child-&gt;nextOnLine()) {
</span><span class="lines">@@ -460,7 +460,7 @@
</span><span class="cx">             if (downcast&lt;InlineFlowBox&gt;(*child).requiresIdeographicBaseline(textBoxDataMap))
</span><span class="cx">                 return true;
</span><span class="cx">         } else {
</span><del>-            if (child-&gt;lineStyle().font().primaryFont()-&gt;hasVerticalGlyphs())
</del><ins>+            if (child-&gt;lineStyle().font().primaryFontData().hasVerticalGlyphs())
</ins><span class="cx">                 return true;
</span><span class="cx">             
</span><span class="cx">             const Vector&lt;const SimpleFontData*&gt;* usedFonts = nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineTextBox.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineTextBox.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/InlineTextBox.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -1388,7 +1388,7 @@
</span><span class="cx"> 
</span><span class="cx">     TextRun run(string, textPos(), expansion(), expansionBehavior(), direction(), dirOverride() || style.rtlOrdering() == VisualOrder, !renderer().canUseSimpleFontCodePath());
</span><span class="cx">     run.setTabSize(!style.collapseWhiteSpace(), style.tabSize());
</span><del>-    if (font.primaryFont()-&gt;isSVGFont())
</del><ins>+    if (font.primaryFontData().isSVGFont())
</ins><span class="cx">         run.setRenderingContext(SVGTextRunRenderingContext::create(renderer()));
</span><span class="cx"> 
</span><span class="cx">     // Propagate the maximum length of the characters buffer to the TextRun, even when we're only processing a substring.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -2320,7 +2320,7 @@
</span><span class="cx">         return left;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Should letter-spacing apply? This is complicated since it doesn't apply at the edge?
</span><del>-    float maxCharWidth = lineGrid-&gt;style().font().primaryFont()-&gt;maxCharWidth();
</del><ins>+    float maxCharWidth = lineGrid-&gt;style().font().primaryFontData().maxCharWidth();
</ins><span class="cx">     if (!maxCharWidth)
</span><span class="cx">         return left;
</span><span class="cx"> 
</span><span class="lines">@@ -2360,7 +2360,7 @@
</span><span class="cx">         return right;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Should letter-spacing apply? This is complicated since it doesn't apply at the edge?
</span><del>-    float maxCharWidth = lineGrid-&gt;style().font().primaryFont()-&gt;maxCharWidth();
</del><ins>+    float maxCharWidth = lineGrid-&gt;style().font().primaryFontData().maxCharWidth();
</ins><span class="cx">     if (!maxCharWidth)
</span><span class="cx">         return right;
</span><span class="cx"> 
</span><span class="lines">@@ -3694,7 +3694,7 @@
</span><span class="cx">     bool directionalOverride = style.rtlOrdering() == VisualOrder;
</span><span class="cx"> 
</span><span class="cx">     TextRun run(characters, length, 0, 0, expansion, textDirection, directionalOverride);
</span><del>-    if (font.primaryFont()-&gt;isSVGFont()) {
</del><ins>+    if (font.primaryFontData().isSVGFont()) {
</ins><span class="cx">         ASSERT(context); // FIXME: Thread a RenderObject&amp; to this point so we don't have to dereference anything.
</span><span class="cx">         run.setRenderingContext(SVGTextRunRenderingContext::create(*context));
</span><span class="cx">     }
</span><span class="lines">@@ -3714,7 +3714,7 @@
</span><span class="cx">             directionalOverride |= isOverride(style.unicodeBidi());
</span><span class="cx">     }
</span><span class="cx">     TextRun run(characters, length, 0, 0, expansion, textDirection, directionalOverride);
</span><del>-    if (font.primaryFont()-&gt;isSVGFont()) {
</del><ins>+    if (font.primaryFontData().isSVGFont()) {
</ins><span class="cx">         ASSERT(context); // FIXME: Thread a RenderObject&amp; to this point so we don't have to dereference anything.
</span><span class="cx">         run.setRenderingContext(SVGTextRunRenderingContext::create(*context));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextControlSingleLinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/RenderTextControlSingleLine.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -346,7 +346,7 @@
</span><span class="cx">     if (family == &quot;Lucida Grande&quot;)
</span><span class="cx">         maxCharWidth = scaleEmToUnits(4027);
</span><span class="cx">     else if (style().font().hasValidAverageCharWidth())
</span><del>-        maxCharWidth = roundf(style().font().primaryFont()-&gt;maxCharWidth());
</del><ins>+        maxCharWidth = roundf(style().font().primaryFontData().maxCharWidth());
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // For text inputs, IE adds some extra width.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -580,7 +580,7 @@
</span><span class="cx">     Font font = style.font();
</span><span class="cx">     
</span><span class="cx">     RenderObject* renderer = inputElement.renderer();
</span><del>-    if (font.primaryFont()-&gt;isSVGFont() &amp;&amp; !renderer)
</del><ins>+    if (font.primaryFontData().isSVGFont() &amp;&amp; !renderer)
</ins><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     FontCachePurgePreventer fontCachePurgePreventer;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRootInlineBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RootInlineBox.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RootInlineBox.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/RootInlineBox.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -901,7 +901,7 @@
</span><span class="cx"> 
</span><span class="cx">     const RenderStyle&amp; boxLineStyle = box.lineStyle();
</span><span class="cx">     if (usedFonts &amp;&amp; !usedFonts-&gt;isEmpty() &amp;&amp; (includeFont || (boxLineStyle.lineHeight().isNegative() &amp;&amp; includeLeading))) {
</span><del>-        usedFonts-&gt;append(boxLineStyle.font().primaryFont());
</del><ins>+        usedFonts-&gt;append(&amp;boxLineStyle.font().primaryFontData());
</ins><span class="cx">         for (size_t i = 0; i &lt; usedFonts-&gt;size(); ++i) {
</span><span class="cx">             const FontMetrics&amp; fontMetrics = usedFonts-&gt;at(i)-&gt;fontMetrics();
</span><span class="cx">             int usedFontAscent = fontMetrics.ascent(baselineType());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingSimpleLineLayoutcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/SimpleLineLayout.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/SimpleLineLayout.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -178,10 +178,10 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-    if (style.font().primaryFont()-&gt;isSVGFont())
</del><ins>+    if (style.font().primaryFontData().isSVGFont())
</ins><span class="cx">         return false;
</span><span class="cx">     // We assume that all lines have metrics based purely on the primary font.
</span><del>-    auto&amp; primaryFontData = *style.font().primaryFont();
</del><ins>+    auto&amp; primaryFontData = style.font().primaryFontData();
</ins><span class="cx">     if (primaryFontData.isLoading())
</span><span class="cx">         return false;
</span><span class="cx">     for (const auto&amp; textRenderer : childrenOfType&lt;RenderText&gt;(flow)) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -1522,7 +1522,7 @@
</span><span class="cx">     if (!bottom.glyph)
</span><span class="cx">         bottom.glyph = extension.glyph;
</span><span class="cx"> 
</span><del>-    top.fontData = style().font().primaryFont();
</del><ins>+    top.fontData = &amp;style().font().primaryFontData();
</ins><span class="cx">     extension.fontData = top.fontData;
</span><span class="cx">     bottom.fontData = top.fontData;
</span><span class="cx">     if (middle.glyph)
</span><span class="lines">@@ -1539,24 +1539,24 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(m_isVertical &amp;&amp; isLargeOperatorInDisplayStyle());
</span><span class="cx"> 
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
</del><ins>+    const auto&amp; primaryFontData = style().font().primaryFontData();
</ins><span class="cx">     GlyphData baseGlyph = style().font().glyphDataForCharacter(character, !style().isLeftToRightDirection());
</span><del>-    if (!primaryFontData || !primaryFontData-&gt;mathData() || baseGlyph.fontData != primaryFontData)
</del><ins>+    if (!primaryFontData.mathData() || baseGlyph.fontData != &amp;primaryFontData)
</ins><span class="cx">         return data;
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;Glyph&gt; sizeVariants;
</span><span class="cx">     Vector&lt;OpenTypeMathData::AssemblyPart&gt; assemblyParts;
</span><span class="cx"> 
</span><span class="cx">     // The value of displayOperatorMinHeight is sometimes too small, so we ensure that it is at least \sqrt{2} times the size of the base glyph.
</span><del>-    float displayOperatorMinHeight = std::max(baseGlyph.fontData-&gt;boundsForGlyph(baseGlyph.glyph).height() * sqrtOfTwoFloat, primaryFontData-&gt;mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::DisplayOperatorMinHeight));
</del><ins>+    float displayOperatorMinHeight = std::max(baseGlyph.fontData-&gt;boundsForGlyph(baseGlyph.glyph).height() * sqrtOfTwoFloat, primaryFontData.mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::DisplayOperatorMinHeight));
</ins><span class="cx"> 
</span><del>-    primaryFontData-&gt;mathData()-&gt;getMathVariants(baseGlyph.glyph, true, sizeVariants, assemblyParts);
</del><ins>+    primaryFontData.mathData()-&gt;getMathVariants(baseGlyph.glyph, true, sizeVariants, assemblyParts);
</ins><span class="cx"> 
</span><span class="cx">     // We choose the first size variant that is larger than the expected displayOperatorMinHeight and otherwise fallback to the largest variant.
</span><span class="cx">     for (auto&amp; variant : sizeVariants) {
</span><span class="cx">         GlyphData sizeVariant;
</span><span class="cx">         sizeVariant.glyph = variant;
</span><del>-        sizeVariant.fontData = primaryFontData;
</del><ins>+        sizeVariant.fontData = &amp;primaryFontData;
</ins><span class="cx">         data.setSizeVariantMode(sizeVariant);
</span><span class="cx">         if (boundsForGlyph(sizeVariant).height() &gt;= displayOperatorMinHeight)
</span><span class="cx">             return data;
</span><span class="lines">@@ -1571,18 +1571,18 @@
</span><span class="cx">     StretchyData data;
</span><span class="cx">     StretchyData assemblyData;
</span><span class="cx"> 
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
</del><ins>+    const auto&amp; primaryFontData = style().font().primaryFontData();
</ins><span class="cx">     GlyphData baseGlyph = style().font().glyphDataForCharacter(character, !style().isLeftToRightDirection());
</span><span class="cx">     
</span><del>-    if (primaryFontData &amp;&amp; primaryFontData-&gt;mathData() &amp;&amp; baseGlyph.fontData == primaryFontData) {
</del><ins>+    if (primaryFontData.mathData() &amp;&amp; baseGlyph.fontData == &amp;primaryFontData) {
</ins><span class="cx">         Vector&lt;Glyph&gt; sizeVariants;
</span><span class="cx">         Vector&lt;OpenTypeMathData::AssemblyPart&gt; assemblyParts;
</span><del>-        primaryFontData-&gt;mathData()-&gt;getMathVariants(baseGlyph.glyph, m_isVertical, sizeVariants, assemblyParts);
</del><ins>+        primaryFontData.mathData()-&gt;getMathVariants(baseGlyph.glyph, m_isVertical, sizeVariants, assemblyParts);
</ins><span class="cx">         // We verify the size variants.
</span><span class="cx">         for (auto&amp; variant : sizeVariants) {
</span><span class="cx">             GlyphData sizeVariant;
</span><span class="cx">             sizeVariant.glyph = variant;
</span><del>-            sizeVariant.fontData = primaryFontData;
</del><ins>+            sizeVariant.fontData = &amp;primaryFontData;
</ins><span class="cx">             if (maximumGlyphWidth)
</span><span class="cx">                 *maximumGlyphWidth = std::max(*maximumGlyphWidth, advanceForGlyph(sizeVariant));
</span><span class="cx">             else {
</span><span class="lines">@@ -1983,8 +1983,8 @@
</span><span class="cx"> 
</span><span class="cx"> LayoutUnit RenderMathMLOperator::trailingSpaceError()
</span><span class="cx"> {
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
-    if (!primaryFontData || !primaryFontData-&gt;mathData())
</del><ins>+    const auto&amp; primaryFontData = style().font().primaryFontData();
+    if (!primaryFontData.mathData())
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx">     // For OpenType MATH font, the layout is based on RenderMathOperator for which the preferred width is sometimes overestimated (bug https://bugs.webkit.org/show_bug.cgi?id=130326).
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLRadicalOperatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -63,8 +63,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLRadicalOperator::stretchTo(LayoutUnit heightAboveBaseline, LayoutUnit depthBelowBaseline)
</span><span class="cx"> {
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
-    if (!primaryFontData || !primaryFontData-&gt;mathData()) {
</del><ins>+    if (!style().font().primaryFontData().mathData()) {
</ins><span class="cx">         // If we do not have an OpenType MATH font, we always make the radical depth a bit larger than the target.
</span><span class="cx">         depthBelowBaseline += gRadicalBottomPointLower;
</span><span class="cx">     }
</span><span class="lines">@@ -84,8 +83,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(preferredLogicalWidthsDirty());
</span><span class="cx"> 
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
-    if (primaryFontData &amp;&amp; primaryFontData-&gt;mathData()) {
</del><ins>+    if (style().font().primaryFontData().mathData()) {
</ins><span class="cx">         RenderMathMLOperator::computePreferredLogicalWidths();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -98,8 +96,7 @@
</span><span class="cx"> 
</span><span class="cx"> void RenderMathMLRadicalOperator::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&amp; computedValues) const
</span><span class="cx"> {
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
-    if (primaryFontData &amp;&amp; primaryFontData-&gt;mathData()) {
</del><ins>+    if (style().font().primaryFontData().mathData()) {
</ins><span class="cx">         RenderMathMLOperator::computeLogicalHeight(logicalHeight, logicalTop, computedValues);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -114,8 +111,7 @@
</span><span class="cx">     if (info.context-&gt;paintingDisabled() || info.phase != PaintPhaseForeground || style().visibility() != VISIBLE)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
-    if (primaryFontData &amp;&amp; primaryFontData-&gt;mathData()) {
</del><ins>+    if (style().font().primaryFontData().mathData()) {
</ins><span class="cx">         RenderMathMLOperator::paint(info, paintOffset);
</span><span class="cx">         return;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -208,17 +208,17 @@
</span><span class="cx">     LayoutUnit kernAfterDegree = -10 * style().font().size() / 18;
</span><span class="cx">     m_degreeBottomRaisePercent = 0.6f;
</span><span class="cx"> 
</span><del>-    const auto&amp; primaryFontData = style().font().primaryFont();
-    if (primaryFontData &amp;&amp; primaryFontData-&gt;mathData()) {
</del><ins>+    const auto&amp; primaryFontData = style().font().primaryFontData();
+    if (auto* mathData = style().font().primaryFontData().mathData()) {
</ins><span class="cx">         // FIXME: m_verticalGap should use RadicalDisplayStyleVertical in display mode (https://bugs.webkit.org/show_bug.cgi?id=118737).
</span><del>-        m_verticalGap = primaryFontData-&gt;mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalVerticalGap);
-        m_ruleThickness = primaryFontData-&gt;mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalRuleThickness);
-        m_extraAscender = primaryFontData-&gt;mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalExtraAscender);
</del><ins>+        m_verticalGap = mathData-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalVerticalGap);
+        m_ruleThickness = mathData-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalRuleThickness);
+        m_extraAscender = mathData-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalExtraAscender);
</ins><span class="cx"> 
</span><span class="cx">         if (!isRenderMathMLSquareRoot()) {
</span><del>-            kernBeforeDegree = primaryFontData-&gt;mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernBeforeDegree);
-            kernAfterDegree = primaryFontData-&gt;mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernAfterDegree);
-            m_degreeBottomRaisePercent = primaryFontData-&gt;mathData()-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalDegreeBottomRaisePercent);
</del><ins>+            kernBeforeDegree = mathData-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernBeforeDegree);
+            kernAfterDegree = mathData-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernAfterDegree);
+            m_degreeBottomRaisePercent = mathData-&gt;getMathConstant(primaryFontData, OpenTypeMathData::RadicalDegreeBottomRaisePercent);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -1184,7 +1184,7 @@
</span><span class="cx">     // FIXME: This should depend on locale.
</span><span class="cx">     DEPRECATED_DEFINE_STATIC_LOCAL(AtomicString, hyphenMinusString, (&amp;hyphenMinus, 1));
</span><span class="cx">     DEPRECATED_DEFINE_STATIC_LOCAL(AtomicString, hyphenString, (&amp;hyphen, 1));
</span><del>-    return font().primaryFontHasGlyphForCharacter(hyphen) ? hyphenString : hyphenMinusString;
</del><ins>+    return font().primaryFontData().glyphForCharacter(hyphen) ? hyphenString : hyphenMinusString;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const AtomicString&amp; RenderStyle::textEmphasisMarkString() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -422,7 +422,7 @@
</span><span class="cx">                 , direction()
</span><span class="cx">                 , dirOverride() || style-&gt;rtlOrdering() == VisualOrder /* directionalOverride */);
</span><span class="cx"> 
</span><del>-    if (style-&gt;font().primaryFont()-&gt;isSVGFont())
</del><ins>+    if (style-&gt;font().primaryFontData().isSVGFont())
</ins><span class="cx">         run.setRenderingContext(SVGTextRunRenderingContext::create(renderer()));
</span><span class="cx"> 
</span><span class="cx">     run.disableRoundingHacks();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextLayoutEngineSpacingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngineSpacing.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -41,16 +41,16 @@
</span><span class="cx"> float SVGTextLayoutEngineSpacing::calculateSVGKerning(bool isVerticalText, const SVGTextMetrics::Glyph&amp; currentGlyph)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><del>-    const SimpleFontData* fontData = m_font.primaryFont();
-    if (!fontData-&gt;isSVGFont()) {
</del><ins>+    const SimpleFontData&amp; fontData = m_font.primaryFontData();
+    if (!fontData.isSVGFont()) {
</ins><span class="cx">         m_lastGlyph.isValid = false;
</span><span class="cx">         return 0;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ASSERT(fontData-&gt;isCustomFont());
-    ASSERT(fontData-&gt;isSVGFont());
</del><ins>+    ASSERT(fontData.isCustomFont());
+    ASSERT(fontData.isSVGFont());
</ins><span class="cx"> 
</span><del>-    const SVGFontData* svgFontData = static_cast&lt;const SVGFontData*&gt;(fontData-&gt;fontData());
</del><ins>+    const SVGFontData* svgFontData = static_cast&lt;const SVGFontData*&gt;(fontData.fontData());
</ins><span class="cx">     SVGFontFaceElement* svgFontFace = svgFontData-&gt;svgFontFaceElement();
</span><span class="cx">     ASSERT(svgFontFace);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextMetricscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetrics.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx">                 , style.direction()
</span><span class="cx">                 , isOverride(style.unicodeBidi()) /* directionalOverride */);
</span><span class="cx"> 
</span><del>-    if (style.font().primaryFont()-&gt;isSVGFont())
</del><ins>+    if (style.font().primaryFontData().isSVGFont())
</ins><span class="cx">         run.setRenderingContext(SVGTextRunRenderingContext::create(text));
</span><span class="cx"> 
</span><span class="cx">     run.disableRoundingHacks();
</span><span class="lines">@@ -91,7 +91,7 @@
</span><span class="cx"> 
</span><span class="cx"> SVGTextMetrics::SVGTextMetrics(RenderSVGInlineText&amp; text, unsigned position, unsigned length, float width, const String&amp; glyphName)
</span><span class="cx"> {
</span><del>-    bool needsContext = text.style().font().primaryFont()-&gt;isSVGFont();
</del><ins>+    bool needsContext = text.style().font().primaryFontData().isSVGFont();
</ins><span class="cx">     float scalingFactor = text.scalingFactor();
</span><span class="cx">     ASSERT(scalingFactor);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextRunRenderingContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -292,13 +292,13 @@
</span><span class="cx"> 
</span><span class="cx"> static GlyphData missingGlyphForFont(const Font&amp; font)
</span><span class="cx"> {
</span><del>-    const SimpleFontData* primaryFontData = font.primaryFont();
-    if (!primaryFontData-&gt;isSVGFont())
</del><ins>+    const SimpleFontData&amp; primaryFontData = font.primaryFontData();
+    if (!primaryFontData.isSVGFont())
</ins><span class="cx">         return GlyphData();
</span><span class="cx">     SVGFontElement* fontElement;
</span><span class="cx">     SVGFontFaceElement* fontFaceElement;
</span><del>-    svgFontAndFontFaceElementForFontData(primaryFontData, fontFaceElement, fontElement);
-    return GlyphData(fontElement-&gt;missingGlyph(), primaryFontData);
</del><ins>+    svgFontAndFontFaceElementForFontData(&amp;primaryFontData, fontFaceElement, fontElement);
+    return GlyphData(fontElement-&gt;missingGlyph(), &amp;primaryFontData);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> GlyphData SVGTextRunRenderingContext::glyphDataForCharacter(const Font&amp; font, WidthIterator&amp; iterator, UChar32 character, bool mirror, int currentCharacter, unsigned&amp; advanceLength, String&amp; normalizedSpacesStringCache)
</span><span class="lines">@@ -314,7 +314,7 @@
</span><span class="cx">         auto&amp; elementRenderer = is&lt;RenderElement&gt;(renderer()) ? downcast&lt;RenderElement&gt;(renderer()) : *renderer().parent();
</span><span class="cx">         if (Element* parentRendererElement = elementRenderer.element()) {
</span><span class="cx">             if (is&lt;SVGAltGlyphElement&gt;(*parentRendererElement))
</span><del>-                glyphData.fontData = font.primaryFont();
</del><ins>+                glyphData.fontData = &amp;font.primaryFontData();
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportPopupMenuMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -81,9 +81,9 @@
</span><span class="cx">         PopupMenuStyle style = m_client-&gt;itemStyle(i);
</span><span class="cx">         RetainPtr&lt;NSMutableDictionary&gt; attributes = adoptNS([[NSMutableDictionary alloc] init]);
</span><span class="cx">         if (style.font() != Font()) {
</span><del>-            NSFont *font = style.font().primaryFont()-&gt;getNSFont();
</del><ins>+            NSFont *font = style.font().primaryFontData().getNSFont();
</ins><span class="cx">             if (!font) {
</span><del>-                CGFloat size = style.font().primaryFont()-&gt;platformData().size();
</del><ins>+                CGFloat size = style.font().primaryFontData().platformData().size();
</ins><span class="cx">                 font = style.font().weight() &lt; FontWeightBold ? [NSFont systemFontOfSize:size] : [NSFont boldSystemFontOfSize:size];
</span><span class="cx">             }
</span><span class="cx">             [attributes setObject:font forKey:NSFontAttributeName];
</span><span class="lines">@@ -148,7 +148,7 @@
</span><span class="cx">     NSMenu* menu = [m_popup menu];
</span><span class="cx">     
</span><span class="cx">     NSPoint location;
</span><del>-    NSFont* font = m_client-&gt;menuStyle().font().primaryFont()-&gt;getNSFont();
</del><ins>+    NSFont* font = m_client-&gt;menuStyle().font().primaryFontData().getNSFont();
</ins><span class="cx"> 
</span><span class="cx">     // These values were borrowed from AppKit to match their placement of the menu.
</span><span class="cx">     const int popOverHorizontalAdjust = -10;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportmacWebPopupMenuMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> {
</span><span class="cx"> #if USE(APPKIT)
</span><span class="cx">     // FIXME: font will be nil here for custom fonts, we should fix that.
</span><del>-    NSFont *font = m_popupClient-&gt;menuStyle().font().primaryFont()-&gt;getNSFont();
</del><ins>+    NSFont *font = m_popupClient-&gt;menuStyle().font().primaryFontData().getNSFont();
</ins><span class="cx">     if (!font)
</span><span class="cx">         return;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (177954 => 177955)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-01-06 11:10:02 UTC (rev 177954)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-01-06 11:23:58 UTC (rev 177955)
</span><span class="lines">@@ -800,7 +800,7 @@
</span><span class="cx">     if (!selection.isNone()) {
</span><span class="cx">         Node* nodeToRemove;
</span><span class="cx">         if (RenderStyle* style = Editor::styleForSelectionStart(&amp;frame, nodeToRemove)) {
</span><del>-            CTFontRef font = style-&gt;font().primaryFont()-&gt;getCTFont();
</del><ins>+            CTFontRef font = style-&gt;font().primaryFontData().getCTFont();
</ins><span class="cx">             CTFontSymbolicTraits traits = font ? CTFontGetSymbolicTraits(font) : 0;
</span><span class="cx">             
</span><span class="cx">             if (traits &amp; kCTFontTraitBold)
</span></span></pre>
</div>
</div>

</body>
</html>