Too much recursion through nsSVGEffects::InvalidateRenderingObservers with nested textPath

RESOLVED FIXED

Status

()

--
critical
RESOLVED FIXED
9 years ago
9 years ago

People

(Reporter: jruderman, Assigned: longsonr)

Tracking

(Blocks: 1 bug, {crash, testcase})

Trunk
x86
Mac OS X
crash, testcase
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

9 years ago
Created attachment 430475 [details]
testcase (crashes Firefox when loaded)

The repeating part of the crash stack:

221 nsSVGEffects::InvalidateRenderingObservers(nsIFrame*) + 172 (nsSVGEffects.cpp:544)
222 nsSVGUtils::UpdateGraphic(nsISVGChildFrame*) + 56 (nsSVGUtils.cpp:670)
223 nsSVGGlyphFrame::SetGlyphPosition(float, float, int) + 92 (nsSVGGlyphFrame.cpp:916)
224 nsSVGTextFrame::UpdateGlyphPositioning(int) + 1156 (nsSVGTextFrame.cpp:407)
225 nsSVGTextFrame::NotifyGlyphMetricsChange() + 32 (nsSVGTextFrame.cpp:292)
226 nsSVGTextContainerFrame::NotifyGlyphMetricsChange() + 37 (nsSVGTextContainerFrame.cpp:61)
227 nsSVGTextPathProperty::DoUpdate() + 198 (nsSVGEffects.cpp:289)
228 nsSVGRenderingObserver::InvalidateViaReferencedFrame() + 44 (nsSVGEffects.cpp:171)
229 nsSVGRenderingObserverList::InvalidateAll() + 130 (nsSVGEffects.cpp:472)
230 nsSVGEffects::InvalidateRenderingObservers(nsIFrame*) + 172 (nsSVGEffects.cpp:544)
(Assignee)

Comment 1

9 years ago
Created attachment 430598 [details] [diff] [review]
patch

The textPath change is not actually required but I was passing and it simplifies the code there. Moving the UpdateGraphic call is the thing that fixes the bug.
Assignee: nobody → longsonr
Attachment #430598 - Flags: review?(roc)
(Assignee)

Comment 2

9 years ago
checked in http://hg.mozilla.org/mozilla-central/rev/c04fe347f85d
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.