<!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() -> 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 <antti@apple.com>
+
+ 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() -> 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 <shiva.jm@samsung.com>
</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& style = renderer->style();
</span><span class="cx">
</span><span class="cx"> // set basic font info
</span><del>- AXAttributeStringSetFont(attrString, style.font().primaryFont()->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 & (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& style = renderer->style();
</span><span class="cx">
</span><span class="cx"> // set basic font info
</span><del>- AXAttributeStringSetFont(attrString, NSAccessibilityFontTextAttribute, style.font().primaryFont()->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)->renderer();
</span><span class="cx"> if (!renderer)
</span><span class="cx"> return nil;
</span><del>- return renderer->style().font().primaryFont()->getNSFont();
</del><ins>+ return renderer->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)->renderer();
</span><span class="cx"> if (!renderer)
</span><span class="cx"> return nil;
</span><del>- return renderer->style().font().primaryFont()->getCTFont();
</del><ins>+ return renderer->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->style().font().primaryFont()->getNSFont();
</del><ins>+ return renderer->style().font().primaryFontData().getNSFont();
</ins><span class="cx"> }
</span><span class="cx"> #else
</span><span class="cx"> static PlatformFont *_font(Element& 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->style().font().primaryFont()->getCTFont();
</del><ins>+ return (PlatformFont *)renderer->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() & TextDecorationLineThrough)
</span><span class="cx"> [attrs.get() setObject:[NSNumber numberWithInteger:NSUnderlineStyleSingle] forKey:NSStrikethroughStyleAttributeName];
</span><del>- if (NSFont *font = style.font().primaryFont()->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()->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(&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->font().primaryFont();
</del><ins>+ result = &style->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->style().font().primaryFont();
</del><ins>+ const SimpleFontData& primaryFont = renderer->style().font().primaryFontData();
</ins><span class="cx"> if (!font)
</span><del>- font = primaryFont;
- else if (font != primaryFont) {
</del><ins>+ font = &primaryFont;
+ else if (font != &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->font().primaryFont()->getCTFont();
</del><ins>+ CTFontRef font = style->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(&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->font().primaryFont();
</del><ins>+ result = &style->font().primaryFontData();
</ins><span class="cx">
</span><span class="cx"> if (nodeToRemove)
</span><span class="cx"> nodeToRemove->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->style().font().primaryFont();
</del><ins>+ const SimpleFontData& primaryFont = renderer->style().font().primaryFontData();
</ins><span class="cx"> if (!font)
</span><del>- font = primaryFont;
- else if (font != primaryFont) {
</del><ins>+ font = &primaryFont;
+ else if (font != &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->visitedDependentColor(CSSPropertyBackgroundColor).isValid() && style->visitedDependentColor(CSSPropertyBackgroundColor).alpha() != 0)
</span><span class="cx"> [result setObject:nsColor(style->visitedDependentColor(CSSPropertyBackgroundColor)) forKey:NSBackgroundColorAttributeName];
</span><span class="cx">
</span><del>- if (style->font().primaryFont()->getNSFont())
- [result setObject:style->font().primaryFont()->getNSFont() forKey:NSFontAttributeName];
</del><ins>+ if (style->font().primaryFontData().getNSFont())
+ [result setObject:style->font().primaryFontData().getNSFont() forKey:NSFontAttributeName];
</ins><span class="cx">
</span><span class="cx"> if (style->visitedDependentColor(CSSPropertyColor).isValid() && style->visitedDependentColor(CSSPropertyColor) != Color::black)
</span><span class="cx"> [result setObject:nsColor(style->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()->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->isForPlatformFont(); }
</span><span class="cx">
</span><del>- const FontMetrics& fontMetrics() const { return primaryFont()->fontMetrics(); }
- float spaceWidth() const { return primaryFont()->spaceWidth() + m_letterSpacing; }
</del><ins>+ const FontMetrics& fontMetrics() const { return primaryFontData().fontMetrics(); }
+ float spaceWidth() const { return primaryFontData().spaceWidth() + m_letterSpacing; }
</ins><span class="cx"> float tabWidth(const SimpleFontData&, 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 &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&) const;
</span><span class="cx"> int emphasisMarkHeight(const AtomicString&) const;
</span><span class="cx">
</span><del>- const SimpleFontData* primaryFont() const;
</del><ins>+ const SimpleFontData& 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& Font::primaryFontData() const
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(m_glyphs);
</span><span class="cx"> return m_glyphs->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()->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& mark, GlyphData& 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& description)
</span><span class="cx"> {
</span><del>- const FontData* fontData = primaryFontData(description);
- if (is<SimpleFontData>(*fontData))
- m_pitch = downcast<SimpleFontData>(*fontData).pitch();
</del><ins>+ const FontData& fontData = *realizeFontDataAt(description, 0);
+ if (is<SimpleFontData>(fontData))
+ m_pitch = downcast<SimpleFontData>(fontData).pitch();
</ins><span class="cx"> else {
</span><del>- const SegmentedFontData& segmentedFontData = downcast<SegmentedFontData>(*fontData);
</del><ins>+ const SegmentedFontData& segmentedFontData = downcast<SegmentedFontData>(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()->pitch();
</span><span class="lines">@@ -245,9 +245,10 @@
</span><span class="cx"> GlyphData FontGlyphs::glyphDataForSystemFallback(UChar32 c, const FontDescription& description, FontDataVariant variant)
</span><span class="cx"> {
</span><span class="cx"> // System fallback is character-dependent.
</span><del>- auto* originalFontData = primaryFontData(description)->simpleFontDataForCharacter(c);
</del><ins>+ auto& primaryFontData = *realizeFontDataAt(description, 0);
+ auto* originalFontData = primaryFontData.simpleFontDataForCharacter(c);
</ins><span class="cx"> if (!originalFontData)
</span><del>- originalFontData = &primaryFontData(description)->simpleFontDataForFirstRange();
</del><ins>+ originalFontData = &primaryFontData.simpleFontDataForFirstRange();
</ins><span class="cx">
</span><span class="cx"> RefPtr<SimpleFontData> systemFallbackFontData = originalFontData->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() && !primarySimpleFontData(description)->isSVGFont()) {
</del><ins>+ if (description.smallCaps() && !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<GlyphPage>& cachedPage = pageNumber ? m_cachedPages.add(pageNumber, nullptr).iterator->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->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& widthCache() { return m_widthCache; }
</span><span class="cx"> const WidthCache& widthCache() const { return m_widthCache; }
</span><span class="cx">
</span><del>- const SimpleFontData* primarySimpleFontData(const FontDescription&);
- const FontData* primaryFontData(const FontDescription& description) { return realizeFontDataAt(description, 0); }
</del><ins>+ const SimpleFontData& primarySimpleFontData(const FontDescription&);
</ins><span class="cx"> WEBCORE_EXPORT const FontData* realizeFontDataAt(const FontDescription&, 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& description)
</del><ins>+inline const SimpleFontData& FontGlyphs::primarySimpleFontData(const FontDescription& 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->simpleFontDataForCharacter(' ');
</del><ins>+ auto& fontData = *realizeFontDataAt(description, 0);
+ m_cachedPrimarySimpleFontData = fontData.simpleFontDataForCharacter(' ');
</ins><span class="cx"> if (!m_cachedPrimarySimpleFontData)
</span><del>- m_cachedPrimarySimpleFontData = &fontData->simpleFontDataForFirstRange();
</del><ins>+ m_cachedPrimarySimpleFontData = &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->primaryFont();
- const SimpleFontData* lastFontData = primaryFont;
</del><ins>+ const SimpleFontData& primaryFontData = m_font->primaryFontData();
+ const SimpleFontData* lastFontData = &primaryFontData;
</ins><span class="cx"> int lastGlyphCount = glyphBuffer ? glyphBuffer->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 && fontData != primaryFont) {
</del><ins>+ if (m_fallbackFonts && fontData != &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->isSmallCaps() || character == u_toupper(character))
</span><span class="cx"> m_fallbackFonts->add(fontData);
</span><span class="cx"> else {
</span><span class="cx"> const GlyphData& uppercaseGlyphData = m_font->glyphDataForCharacter(u_toupper(character), rtl);
</span><del>- if (uppercaseGlyphData.fontData != primaryFont)
</del><ins>+ if (uppercaseGlyphData.fontData != &primaryFontData)
</ins><span class="cx"> m_fallbackFonts->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 && complexTextRun.fontData() != m_font.primaryFont())
- fallbackFonts->add(complexTextRun.fontData());
</del><ins>+ if (fallbackFonts && &complexTextRun.fontData() != &m_font.primaryFontData())
+ fallbackFonts->add(&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 && !m_characterInCurrentGlyph)
</span><del>- glyphBuffer->add(m_adjustedGlyphs[k], complexTextRun.fontData(), adjustedAdvance, complexTextRun.indexAt(m_glyphInCurrentRun));
</del><ins>+ glyphBuffer->add(m_adjustedGlyphs[k], &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 < runCount; ++r) {
</span><span class="cx"> ComplexTextRun& complexTextRun = *m_complexTextRuns[r];
</span><span class="cx"> unsigned glyphCount = complexTextRun.glyphCount();
</span><del>- const SimpleFontData* fontData = complexTextRun.fontData();
</del><ins>+ const SimpleFontData& fontData = complexTextRun.fontData();
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>- bool isEmoji = fontData->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() && fontData->platformData().roundsGlyphAdvances();
- float spaceWidth = fontData->spaceWidth() - fontData->syntheticBoldOffset();
</del><ins>+ bool roundsAdvances = !m_font.isPrinterFont() && 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]->characters() + m_complexTextRuns[r + 1]->indexAt(0));
</span><span class="cx">
</span><span class="cx"> bool treatAsSpace = Font::treatAsSpace(ch);
</span><del>- CGGlyph glyph = treatAsSpace ? fontData->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 && 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' && 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) && !treatAsSpace) {
</span><span class="cx"> advance.width = 0;
</span><del>- glyph = fontData->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->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() && roundedAdvanceWidth == roundedSpaceWidth && (fontData->pitch() == FixedPitch || glyph == fontData->spaceGlyph()))
- advance.width = fontData->adjustedSpaceWidth();
</del><ins>+ if (m_run.applyWordRounding() && roundedAdvanceWidth == roundedSpaceWidth && (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->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<ComplexTextRun> {
</span><span class="cx"> public:
</span><del>- static Ref<ComplexTextRun> create(CTRunRef ctRun, const SimpleFontData* fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange)
</del><ins>+ static Ref<ComplexTextRun> create(CTRunRef ctRun, const SimpleFontData& 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<ComplexTextRun> create(const SimpleFontData* fontData, const UChar* characters, unsigned stringLocation, size_t stringLength, bool ltr)
</del><ins>+ static Ref<ComplexTextRun> create(const SimpleFontData& 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& 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&, const UChar* characters, unsigned stringLocation, size_t stringLength, CFRange runRange);
+ ComplexTextRun(const SimpleFontData&, 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& 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& 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& 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->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<CFStringRef> fontName = adoptCF(CTFontCopyPostScriptName(runFont));
</span><span class="cx"> if (CFEqual(fontName.get(), CFSTR("LastResort"))) {
</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 && runFontData != m_font.primaryFont())
</del><ins>+ if (m_fallbackFonts && runFontData != &m_font.primaryFontData())
</ins><span class="cx"> m_fallbackFonts->add(runFontData);
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- if (m_fallbackFonts && runFontData != m_font.primaryFont())
</del><ins>+ if (m_fallbackFonts && runFontData != &m_font.primaryFontData())
</ins><span class="cx"> m_fallbackFonts->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 > 1090
</span><del>- const auto* fontData = primaryFont();
- return !fontData->isSVGFont() && CTFontDescriptorIsSystemUIFont(adoptCF(CTFontCopyFontDescriptor(fontData->platformData().ctFont())).get());
</del><ins>+ const auto& fontData = primaryFontData();
+ return !fontData.isSVGFont() && 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& 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->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&, 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& font, Glyph glyph) const
</ins><span class="cx"> {
</span><span class="cx"> const OpenType::MATHTable* math = OpenType::validateTable<OpenType::MATHTable>(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->getItalicCorrection(*m_mathBuffer, glyph) * font->sizePerUnit();
</del><ins>+ return mathItalicsCorrectionInfo->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&, 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&, MathConstant) const;
+ float getItalicCorrection(const SimpleFontData&, Glyph) const;
</ins><span class="cx"> void getMathVariants(Glyph, bool isVertical, Vector<Glyph>& sizeVariants, Vector<AssemblyPart>& 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 && fontData && nextFontData != fontData && fontData != m_font.primaryFont())
</del><ins>+ if (m_fallbackFonts && fontData && nextFontData != fontData && fontData != &m_font.primaryFontData())
</ins><span class="cx"> m_fallbackFonts->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 && nextFontData && nextFontData != m_font.primaryFont())
</del><ins>+ if (m_fallbackFonts && nextFontData && nextFontData != &m_font.primaryFontData())
</ins><span class="cx"> m_fallbackFonts->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& lineStyle = this->lineStyle();
</span><span class="cx"> if (lineStyle.fontDescription().nonCJKGlyphOrientation() == NonCJKGlyphOrientationUpright
</span><del>- || lineStyle.font().primaryFont()->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->nextOnLine()) {
</span><span class="lines">@@ -460,7 +460,7 @@
</span><span class="cx"> if (downcast<InlineFlowBox>(*child).requiresIdeographicBaseline(textBoxDataMap))
</span><span class="cx"> return true;
</span><span class="cx"> } else {
</span><del>- if (child->lineStyle().font().primaryFont()->hasVerticalGlyphs())
</del><ins>+ if (child->lineStyle().font().primaryFontData().hasVerticalGlyphs())
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> const Vector<const SimpleFontData*>* 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()->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->style().font().primaryFont()->maxCharWidth();
</del><ins>+ float maxCharWidth = lineGrid->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->style().font().primaryFont()->maxCharWidth();
</del><ins>+ float maxCharWidth = lineGrid->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()->isSVGFont()) {
</del><ins>+ if (font.primaryFontData().isSVGFont()) {
</ins><span class="cx"> ASSERT(context); // FIXME: Thread a RenderObject& 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()->isSVGFont()) {
</del><ins>+ if (font.primaryFontData().isSVGFont()) {
</ins><span class="cx"> ASSERT(context); // FIXME: Thread a RenderObject& 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 == "Lucida Grande")
</span><span class="cx"> maxCharWidth = scaleEmToUnits(4027);
</span><span class="cx"> else if (style().font().hasValidAverageCharWidth())
</span><del>- maxCharWidth = roundf(style().font().primaryFont()->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()->isSVGFont() && !renderer)
</del><ins>+ if (font.primaryFontData().isSVGFont() && !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& boxLineStyle = box.lineStyle();
</span><span class="cx"> if (usedFonts && !usedFonts->isEmpty() && (includeFont || (boxLineStyle.lineHeight().isNegative() && includeLeading))) {
</span><del>- usedFonts->append(boxLineStyle.font().primaryFont());
</del><ins>+ usedFonts->append(&boxLineStyle.font().primaryFontData());
</ins><span class="cx"> for (size_t i = 0; i < usedFonts->size(); ++i) {
</span><span class="cx"> const FontMetrics& fontMetrics = usedFonts->at(i)->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()->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& primaryFontData = *style.font().primaryFont();
</del><ins>+ auto& primaryFontData = style.font().primaryFontData();
</ins><span class="cx"> if (primaryFontData.isLoading())
</span><span class="cx"> return false;
</span><span class="cx"> for (const auto& textRenderer : childrenOfType<RenderText>(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 = &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 && isLargeOperatorInDisplayStyle());
</span><span class="cx">
</span><del>- const auto& primaryFontData = style().font().primaryFont();
</del><ins>+ const auto& primaryFontData = style().font().primaryFontData();
</ins><span class="cx"> GlyphData baseGlyph = style().font().glyphDataForCharacter(character, !style().isLeftToRightDirection());
</span><del>- if (!primaryFontData || !primaryFontData->mathData() || baseGlyph.fontData != primaryFontData)
</del><ins>+ if (!primaryFontData.mathData() || baseGlyph.fontData != &primaryFontData)
</ins><span class="cx"> return data;
</span><span class="cx">
</span><span class="cx"> Vector<Glyph> sizeVariants;
</span><span class="cx"> Vector<OpenTypeMathData::AssemblyPart> 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->boundsForGlyph(baseGlyph.glyph).height() * sqrtOfTwoFloat, primaryFontData->mathData()->getMathConstant(primaryFontData, OpenTypeMathData::DisplayOperatorMinHeight));
</del><ins>+ float displayOperatorMinHeight = std::max(baseGlyph.fontData->boundsForGlyph(baseGlyph.glyph).height() * sqrtOfTwoFloat, primaryFontData.mathData()->getMathConstant(primaryFontData, OpenTypeMathData::DisplayOperatorMinHeight));
</ins><span class="cx">
</span><del>- primaryFontData->mathData()->getMathVariants(baseGlyph.glyph, true, sizeVariants, assemblyParts);
</del><ins>+ primaryFontData.mathData()->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& variant : sizeVariants) {
</span><span class="cx"> GlyphData sizeVariant;
</span><span class="cx"> sizeVariant.glyph = variant;
</span><del>- sizeVariant.fontData = primaryFontData;
</del><ins>+ sizeVariant.fontData = &primaryFontData;
</ins><span class="cx"> data.setSizeVariantMode(sizeVariant);
</span><span class="cx"> if (boundsForGlyph(sizeVariant).height() >= 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& primaryFontData = style().font().primaryFont();
</del><ins>+ const auto& primaryFontData = style().font().primaryFontData();
</ins><span class="cx"> GlyphData baseGlyph = style().font().glyphDataForCharacter(character, !style().isLeftToRightDirection());
</span><span class="cx">
</span><del>- if (primaryFontData && primaryFontData->mathData() && baseGlyph.fontData == primaryFontData) {
</del><ins>+ if (primaryFontData.mathData() && baseGlyph.fontData == &primaryFontData) {
</ins><span class="cx"> Vector<Glyph> sizeVariants;
</span><span class="cx"> Vector<OpenTypeMathData::AssemblyPart> assemblyParts;
</span><del>- primaryFontData->mathData()->getMathVariants(baseGlyph.glyph, m_isVertical, sizeVariants, assemblyParts);
</del><ins>+ primaryFontData.mathData()->getMathVariants(baseGlyph.glyph, m_isVertical, sizeVariants, assemblyParts);
</ins><span class="cx"> // We verify the size variants.
</span><span class="cx"> for (auto& variant : sizeVariants) {
</span><span class="cx"> GlyphData sizeVariant;
</span><span class="cx"> sizeVariant.glyph = variant;
</span><del>- sizeVariant.fontData = primaryFontData;
</del><ins>+ sizeVariant.fontData = &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& primaryFontData = style().font().primaryFont();
- if (!primaryFontData || !primaryFontData->mathData())
</del><ins>+ const auto& 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& primaryFontData = style().font().primaryFont();
- if (!primaryFontData || !primaryFontData->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& primaryFontData = style().font().primaryFont();
- if (primaryFontData && primaryFontData->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& computedValues) const
</span><span class="cx"> {
</span><del>- const auto& primaryFontData = style().font().primaryFont();
- if (primaryFontData && primaryFontData->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->paintingDisabled() || info.phase != PaintPhaseForeground || style().visibility() != VISIBLE)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- const auto& primaryFontData = style().font().primaryFont();
- if (primaryFontData && primaryFontData->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& primaryFontData = style().font().primaryFont();
- if (primaryFontData && primaryFontData->mathData()) {
</del><ins>+ const auto& 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->mathData()->getMathConstant(primaryFontData, OpenTypeMathData::RadicalVerticalGap);
- m_ruleThickness = primaryFontData->mathData()->getMathConstant(primaryFontData, OpenTypeMathData::RadicalRuleThickness);
- m_extraAscender = primaryFontData->mathData()->getMathConstant(primaryFontData, OpenTypeMathData::RadicalExtraAscender);
</del><ins>+ m_verticalGap = mathData->getMathConstant(primaryFontData, OpenTypeMathData::RadicalVerticalGap);
+ m_ruleThickness = mathData->getMathConstant(primaryFontData, OpenTypeMathData::RadicalRuleThickness);
+ m_extraAscender = mathData->getMathConstant(primaryFontData, OpenTypeMathData::RadicalExtraAscender);
</ins><span class="cx">
</span><span class="cx"> if (!isRenderMathMLSquareRoot()) {
</span><del>- kernBeforeDegree = primaryFontData->mathData()->getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernBeforeDegree);
- kernAfterDegree = primaryFontData->mathData()->getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernAfterDegree);
- m_degreeBottomRaisePercent = primaryFontData->mathData()->getMathConstant(primaryFontData, OpenTypeMathData::RadicalDegreeBottomRaisePercent);
</del><ins>+ kernBeforeDegree = mathData->getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernBeforeDegree);
+ kernAfterDegree = mathData->getMathConstant(primaryFontData, OpenTypeMathData::RadicalKernAfterDegree);
+ m_degreeBottomRaisePercent = mathData->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, (&hyphenMinus, 1));
</span><span class="cx"> DEPRECATED_DEFINE_STATIC_LOCAL(AtomicString, hyphenString, (&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& 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->rtlOrdering() == VisualOrder /* directionalOverride */);
</span><span class="cx">
</span><del>- if (style->font().primaryFont()->isSVGFont())
</del><ins>+ if (style->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& currentGlyph)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(SVG_FONTS)
</span><del>- const SimpleFontData* fontData = m_font.primaryFont();
- if (!fontData->isSVGFont()) {
</del><ins>+ const SimpleFontData& 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->isCustomFont());
- ASSERT(fontData->isSVGFont());
</del><ins>+ ASSERT(fontData.isCustomFont());
+ ASSERT(fontData.isSVGFont());
</ins><span class="cx">
</span><del>- const SVGFontData* svgFontData = static_cast<const SVGFontData*>(fontData->fontData());
</del><ins>+ const SVGFontData* svgFontData = static_cast<const SVGFontData*>(fontData.fontData());
</ins><span class="cx"> SVGFontFaceElement* svgFontFace = svgFontData->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()->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& text, unsigned position, unsigned length, float width, const String& glyphName)
</span><span class="cx"> {
</span><del>- bool needsContext = text.style().font().primaryFont()->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& font)
</span><span class="cx"> {
</span><del>- const SimpleFontData* primaryFontData = font.primaryFont();
- if (!primaryFontData->isSVGFont())
</del><ins>+ const SimpleFontData& 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->missingGlyph(), primaryFontData);
</del><ins>+ svgFontAndFontFaceElementForFontData(&primaryFontData, fontFaceElement, fontElement);
+ return GlyphData(fontElement->missingGlyph(), &primaryFontData);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> GlyphData SVGTextRunRenderingContext::glyphDataForCharacter(const Font& font, WidthIterator& iterator, UChar32 character, bool mirror, int currentCharacter, unsigned& advanceLength, String& normalizedSpacesStringCache)
</span><span class="lines">@@ -314,7 +314,7 @@
</span><span class="cx"> auto& elementRenderer = is<RenderElement>(renderer()) ? downcast<RenderElement>(renderer()) : *renderer().parent();
</span><span class="cx"> if (Element* parentRendererElement = elementRenderer.element()) {
</span><span class="cx"> if (is<SVGAltGlyphElement>(*parentRendererElement))
</span><del>- glyphData.fontData = font.primaryFont();
</del><ins>+ glyphData.fontData = &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->itemStyle(i);
</span><span class="cx"> RetainPtr<NSMutableDictionary> attributes = adoptNS([[NSMutableDictionary alloc] init]);
</span><span class="cx"> if (style.font() != Font()) {
</span><del>- NSFont *font = style.font().primaryFont()->getNSFont();
</del><ins>+ NSFont *font = style.font().primaryFontData().getNSFont();
</ins><span class="cx"> if (!font) {
</span><del>- CGFloat size = style.font().primaryFont()->platformData().size();
</del><ins>+ CGFloat size = style.font().primaryFontData().platformData().size();
</ins><span class="cx"> font = style.font().weight() < 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->menuStyle().font().primaryFont()->getNSFont();
</del><ins>+ NSFont* font = m_client->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->menuStyle().font().primaryFont()->getNSFont();
</del><ins>+ NSFont *font = m_popupClient->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(&frame, nodeToRemove)) {
</span><del>- CTFontRef font = style->font().primaryFont()->getCTFont();
</del><ins>+ CTFontRef font = style->font().primaryFontData().getCTFont();
</ins><span class="cx"> CTFontSymbolicTraits traits = font ? CTFontGetSymbolicTraits(font) : 0;
</span><span class="cx">
</span><span class="cx"> if (traits & kCTFontTraitBold)
</span></span></pre>
</div>
</div>
</body>
</html>