Closed Bug 372553 Opened 17 years ago Closed 17 years ago

[FIX]"ASSERTION: Some frame destructors were not called" with :first-letter, wrapping

Categories

(Core :: Layout, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla1.9alpha3

People

(Reporter: jruderman, Assigned: bzbarsky)

References

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

The testcase triggers the following assertion when reloaded / closed:

###!!! ASSERTION: Some frame destructors were not called: 'mFrameCount == 0', file /Users/jruderman/trunk/mozilla/layout/base/nsPresShell.cpp, line 644

This assertion often indicates the presence of a security hole, but I don't think that's true for this bug.

Also, the rendering is incorrect -- the lowercase 'b's are missing.
Flags: blocking1.9?
Attached file reference rendering
Attached patch Proposed fixSplinter Review
When we recover letter frames here, we put the letter frame as a child of the first in-flow of the first child of the block, since that's where the text is.

Then we pull that letter frame in nsInlineFrame::ReflowFrames and reflow it.  It creates a continuation, which is now in our child list.  But we don't ever reflow that, because we go ahead and pull the _next_ frame from the next-in-flow.  We need to notice when creating a continuation actually left the continuation in our list and deal with that case, which is what this patch does.
Assignee: nobody → bzbarsky
Status: NEW → ASSIGNED
Attachment #257273 - Flags: superreview?(roc)
Attachment #257273 - Flags: review?(roc)
And I don't think there's a security problem -- we only leak a text frame.
OS: Mac OS X → All
Priority: -- → P1
Hardware: PC → All
Summary: "ASSERTION: Some frame destructors were not called" with :first-letter, wrapping → [FIX]"ASSERTION: Some frame destructors were not called" with :first-letter, wrapping
Target Milestone: --- → mozilla1.9alpha3
Attachment #257273 - Flags: superreview?(roc)
Attachment #257273 - Flags: superreview+
Attachment #257273 - Flags: review?(roc)
Attachment #257273 - Flags: review+
Fixed.  Still need to add a testcase...  Jesse, you have time to do that?
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Flags: blocking1.9? → in-testsuite?
Resolution: --- → FIXED
Sure.  The testcase and reference rendering here were intended as a reftest pair; should I check them in?
That'd rock.
Reftest checked in.
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: