Changeset 88652 in webkit
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r88649 r88652 1 2011-06-13 Tim Horton <timothy_horton@apple.com> 2 3 Reviewed by Simon Fraser. 4 5 REGRESSION(87152): Crash on page with svg fonts 6 https://bugs.webkit.org/show_bug.cgi?id=61556 7 8 We can't assume that the parent of a SVG-font-styled 9 text node won't be an anonymous block. 10 11 Test: svg/text/text-font-anonymous-parent.xhtml 12 13 * rendering/svg/SVGTextRunRenderingContext.cpp: 14 (WebCore::firstParentRendererForNonTextNode): 15 (WebCore::SVGTextRunWalker::walk): 16 (WebCore::floatWidthOfSubStringUsingSVGFont): 17 (WebCore::SVGTextRunRenderingContext::drawTextUsingSVGFont): 18 1 19 2011-06-13 Tony Chang <tony@chromium.org> 2 20 -
trunk/Source/WebCore/rendering/svg/SVGTextRunRenderingContext.cpp
r88557 r88652 77 77 ASSERT(renderer); 78 78 RenderObject* newRenderer = renderer->isText() ? renderer->parent() : renderer; 79 ASSERT(newRenderer->node());80 ASSERT(newRenderer->node()->isElementNode());81 79 return newRenderer; 82 80 } … … 132 130 SVGGlyph altGlyphIdentifier; 133 131 Node* node = parentRenderObject->node(); 134 if (node ->hasTagName(SVGNames::altGlyphTag)) {132 if (node && node->hasTagName(SVGNames::altGlyphTag)) { 135 133 if (SVGGlyphElement* glyphElement = static_cast<SVGAltGlyphElement*>(node)->glyphElement()) { 136 134 haveAltGlyph = true; … … 268 266 269 267 RenderObject* renderObject = referencingRenderObjectFromRun(run); 270 RenderObject* parentRenderObject = firstParentRendererForNonTextNode(renderObject); 271 272 String language = toElement(parentRenderObject->node())->getAttribute(XMLNames::langAttr); 268 RenderObject* parentRenderObject = firstParentRendererForNonTextNode(renderObject); 269 270 String language; 271 if (SVGElement* element = static_cast<SVGElement*>(parentRenderObject->node())) 272 language = element->getAttribute(XMLNames::langAttr); 273 273 274 bool isVerticalText = isVerticalWritingMode(parentRenderObject->style()->svgStyle()); 274 275 … … 349 350 FloatPoint glyphOrigin; 350 351 351 Node* node = parentRenderObject->node(); 352 String language = toElement(node)->getAttribute(XMLNames::langAttr); 352 String language; 353 if (SVGElement* element = static_cast<SVGElement*>(parentRenderObject->node())) 354 language = element->getAttribute(XMLNames::langAttr); 353 355 354 356 RenderStyle* parentRenderObjectStyle = parentRenderObject->style();
Note: See TracChangeset
for help on using the changeset viewer.