Title: [159012] trunk/Source/WebCore
Revision
159012
Author
[email protected]
Date
2013-11-09 22:37:00 -0800 (Sat, 09 Nov 2013)

Log Message

SVGTextMetricsBuilder::walkTree() should take a RenderElement.
<https://webkit.org/b/124105>

Make walkTree() take a RenderElement so we can use the non-virtual
firstChild() internally. All call sites had pointers to compatible
objects already.

Reviewed by Anders Carlsson.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (159011 => 159012)


--- trunk/Source/WebCore/ChangeLog	2013-11-10 05:48:50 UTC (rev 159011)
+++ trunk/Source/WebCore/ChangeLog	2013-11-10 06:37:00 UTC (rev 159012)
@@ -1,5 +1,16 @@
 2013-11-09  Andreas Kling  <[email protected]>
 
+        SVGTextMetricsBuilder::walkTree() should take a RenderElement.
+        <https://webkit.org/b/124105>
+
+        Make walkTree() take a RenderElement so we can use the non-virtual
+        firstChild() internally. All call sites had pointers to compatible
+        objects already.
+
+        Reviewed by Anders Carlsson.
+
+2013-11-09  Andreas Kling  <[email protected]>
+
         RenderMathMLFenced should pass around operators in tighter types.
         <https://webkit.org/b/124115>
 

Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.cpp (159011 => 159012)


--- trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.cpp	2013-11-10 05:48:50 UTC (rev 159011)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.cpp	2013-11-10 06:37:00 UTC (rev 159012)
@@ -177,9 +177,9 @@
     data->skippedCharacters = 0;
 }
 
-void SVGTextMetricsBuilder::walkTree(RenderObject* start, RenderSVGInlineText* stopAtLeaf, MeasureTextData* data)
+void SVGTextMetricsBuilder::walkTree(RenderElement& start, RenderSVGInlineText* stopAtLeaf, MeasureTextData* data)
 {
-    for (RenderObject* child = start->firstChildSlow(); child; child = child->nextSibling()) {
+    for (auto child = start.firstChild(); child; child = child->nextSibling()) {
         if (child->isSVGInlineText()) {
             RenderSVGInlineText* text = toRenderSVGInlineText(child);
             if (stopAtLeaf && stopAtLeaf != text) {
@@ -199,7 +199,7 @@
         if (!child->isSVGInline())
             continue;
 
-        walkTree(child, stopAtLeaf, data);
+        walkTree(toRenderElement(*child), stopAtLeaf, data);
     }
 }
 
@@ -212,14 +212,14 @@
         return;
 
     MeasureTextData data(0);
-    walkTree(textRoot, text, &data);
+    walkTree(*textRoot, text, &data);
 }
 
 void SVGTextMetricsBuilder::buildMetricsAndLayoutAttributes(RenderSVGText* textRoot, RenderSVGInlineText* stopAtLeaf, SVGCharacterDataMap& allCharactersMap)
 {
     ASSERT(textRoot);
     MeasureTextData data(&allCharactersMap);
-    walkTree(textRoot, stopAtLeaf, &data);
+    walkTree(*textRoot, stopAtLeaf, &data);
 }
 
 }

Modified: trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.h (159011 => 159012)


--- trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.h	2013-11-10 05:48:50 UTC (rev 159011)
+++ trunk/Source/WebCore/rendering/svg/SVGTextMetricsBuilder.h	2013-11-10 06:37:00 UTC (rev 159012)
@@ -29,7 +29,7 @@
 
 namespace WebCore {
 
-class RenderObject;
+class RenderElement;
 class RenderSVGInlineText;
 class RenderSVGText;
 struct MeasureTextData;
@@ -48,7 +48,7 @@
     bool currentCharacterStartsSurrogatePair() const;
 
     void initializeMeasurementWithTextRenderer(RenderSVGInlineText*);
-    void walkTree(RenderObject*, RenderSVGInlineText* stopAtLeaf, MeasureTextData*);
+    void walkTree(RenderElement&, RenderSVGInlineText* stopAtLeaf, MeasureTextData*);
     void measureTextRenderer(RenderSVGInlineText*, MeasureTextData*);
 
     RenderSVGInlineText* m_text;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to