"ASSERTION: bits don't correspond to style change reason" with MathML

RESOLVED FIXED

Status

()

Core
Layout
RESOLVED FIXED
9 years ago
9 years ago

People

(Reporter: Jesse Ruderman, Assigned: dbaron)

Tracking

(Blocks: 1 bug, {assertion, regression, testcase})

Trunk
x86
Mac OS X
assertion, regression, testcase
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

9 years ago
Created attachment 360964 [details]
testcase

This assertion was added in bug 363247 and I'm hitting it a lot.

###!!! ASSERTION: bits don't correspond to style change reason: 'aIntrinsicDirty != eStyleChange || aBitToAdd == NS_FRAME_IS_DIRTY', file /Users/jruderman/central/layout/base/nsPresShell.cpp, line 3126
It's an eStyleChange with NS_FRAME_HAS_DIRTY_CHILDREN, yeah.  The caller is nsMathMLContainerFrame::ReLayoutChildren (which always does eStyleChange) and its caller is nsMathMLmathBlockFrame::InsertFrames.
(Assignee)

Comment 2

9 years ago
Given that this function is marking ancestors with NS_FRAME_IS_DIRTY, it seems like it's effectively saying the frame is dirty.
It's not marking ancestors of the frame it passes to FrameNeedsReflow with NS_FRAME_IS_DIRTY, though.
(Assignee)

Updated

9 years ago
Assignee: nobody → dbaron
Status: NEW → ASSIGNED
(Assignee)

Comment 4

9 years ago
Er, right... I'd looked a bit more since comment 2... but the difference seems incredibly minor, and I don't see any reason why an operation on a child frame should cause a frame many frames up the tree to get NS_FRAME_HAS_DIRTY_CHILDREN rather than NS_FRAME_IS_DIRTY.  If we need to do this much damage, we may as well be consistent about it.
I could live with that, I guess.
(Assignee)

Comment 6

9 years ago
Created attachment 361411 [details] [diff] [review]
patch
Attachment #361411 - Flags: superreview?(bzbarsky)
Attachment #361411 - Flags: review?(bzbarsky)
(Assignee)

Comment 7

9 years ago
(Full reftests pass, although I don't know how meaningful that is for MathML dynamic change handling.)
Comment on attachment 361411 [details] [diff] [review]
patch

I think I'd be fine with a followup bug to remove those XXX comments and dirty bit sets they're about.
Attachment #361411 - Flags: superreview?(bzbarsky)
Attachment #361411 - Flags: superreview+
Attachment #361411 - Flags: review?(bzbarsky)
Attachment #361411 - Flags: review+
(Assignee)

Comment 9

9 years ago
http://hg.mozilla.org/mozilla-central/rev/81bf5017af71
Status: ASSIGNED → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
(Assignee)

Comment 10

9 years ago
Filed bug 477915 to follow up.
You need to log in before you can comment on or make changes to this bug.