Closed
Bug 910
Opened 26 years ago
Closed 26 years ago
Leaking Bullet Frame
Categories
(Core :: Layout, defect, P2)
Tracking
()
VERIFIED
FIXED
People
(Reporter: troy, Assigned: buster)
Details
Under certain circumstances the nsBlockFrame code is leaking the bullet frame
which means that the list item content object (and all its child content objects
are leaking).
I looked the bullet frame is handled differently if it's an outside bullet vs.
an inside bullet so I'm leaving it to since you know best.
Here's some simple HTML that demonstrates the problem:
<html>
<body>
<ol>
<li>List item #1</li>
</ol>
</body>
</html>
Here's some output from your nifty XP-COM ref count tracking additions:
0[d526a0]: AddRef: dc0c20: 0=>1 [nsHTMLLIElement::QueryInterface
NS_NewHTMLLIElement NS_CreateHTMLElement SinkContext::OpenContainer
SinkContext::OpenContainer HTMLContentSink::OpenContainer CNavDT
0[d526a0]: AddRef: dc0c2c: 1=>2 [nsGenericHTMLContainerElement::AppendChildTo
nsHTMLOListElement::AppendChildTo SinkContext::CloseContainer
HTMLContentSink::CloseContainer CNavDTD::CloseContainer C
0[d526a0]: Release: dc0c2c: 2=>1 [SinkContext::CloseContainer
HTMLContentSink::CloseContainer CNavDTD::CloseContainer
CNavDTD::CloseContainersTo CNavDTD::CloseContainersTo CNavDTD::HandleEndToken N
0[d526a0]: AddRef: dc0c2c: 1=>2 [nsGenericHTMLContainerElement::ChildAt
nsHTMLOListElement::ChildAt HTMLStyleSheetImpl::ProcessChildren
HTMLStyleSheetImpl::ConstructFrameByDisplayType HTMLStyleShee
0[d526a0]: AddRef: dc0c20: 2=>3 [nsHTMLLIElement::QueryInterface
CSSStyleSheetImpl::RulesMatching StyleSetImpl::RulesMatching
StyleSetImpl::ResolveStyleFor nsPresContext::ResolveStyleContextFor HTM
0[d526a0]: Release: dc0c2c: 3=>2 [CSSStyleSheetImpl::RulesMatching
StyleSetImpl::RulesMatching StyleSetImpl::ResolveStyleFor
nsPresContext::ResolveStyleContextFor HTMLStyleSheetImpl::ConstructFrame
0[d526a0]: AddRef: dc0c20: 2=>3 [nsHTMLLIElement::QueryInterface
HTMLStyleSheetImpl::RulesMatching StyleSetImpl::RulesMatching
StyleSetImpl::ResolveStyleFor nsPresContext::ResolveStyleContextFor HT
0[d526a0]: Release: dc0c2c: 3=>2 [HTMLStyleSheetImpl::RulesMatching
StyleSetImpl::RulesMatching StyleSetImpl::ResolveStyleFor
nsPresContext::ResolveStyleContextFor HTMLStyleSheetImpl::ConstructFram
0[d526a0]: AddRef: dc0c20: 2=>3 [nsHTMLLIElement::QueryInterface
HTMLCSSStyleSheetImpl::RulesMatching StyleSetImpl::RulesMatching
StyleSetImpl::ResolveStyleFor nsPresContext::ResolveStyleContextFor
0[d526a0]: Release: dc0c2c: 3=>2 [HTMLCSSStyleSheetImpl::RulesMatching
StyleSetImpl::RulesMatching StyleSetImpl::ResolveStyleFor
nsPresContext::ResolveStyleContextFor HTMLStyleSheetImpl::ConstructF
0[d526a0]: AddRef: dc0c2c: 2=>3 [nsFrame::nsFrame
nsSplittableFrame::nsSplittableFrame nsContainerFrame::nsContainerFrame
nsHTMLContainerFrame::nsHTMLContainerFrame nsBlockFrame::nsBlockFrame NS_Ne
0[d526a0]: AddRef: dc0c2c: 3=>4 [nsFrame::nsFrame BulletFrame::BulletFrame
nsBlockFrame::Init HTMLStyleSheetImpl::ConstructFrameByDisplayType
HTMLStyleSheetImpl::ConstructFrame HTMLStyleSheetImpl::
0[d526a0]: Release: dc0c2c: 4=>3 [HTMLStyleSheetImpl::ProcessChildren
HTMLStyleSheetImpl::ConstructFrameByDisplayType
HTMLStyleSheetImpl::ConstructFrame HTMLStyleSheetImpl::ContentAppended StyleSet
0[d526a0]: AddRef: dc0c2c: 3=>4 [nsFrame::GetContent
BulletFrame::SetListItemOrdinal nsBlockFrame::RenumberLists
nsBlockFrame::ReflowAround nsInlineReflow::ReflowFrame
nsInlineReflow::ReflowFrame n
0[d526a0]: AddRef: dc0c20: 4=>5 [nsHTMLLIElement::QueryInterface
BulletFrame::SetListItemOrdinal nsBlockFrame::RenumberLists
nsBlockFrame::ReflowAround nsInlineReflow::ReflowFrame nsInlineReflow::R
0[d526a0]: Release: dc0c2c: 5=>4 [BulletFrame::SetListItemOrdinal
nsBlockFrame::RenumberLists nsBlockFrame::ReflowAround
nsInlineReflow::ReflowFrame nsInlineReflow::ReflowFrame nsBlockFrame::Reflow
0[d526a0]: Release: dc0c2c: 4=>3 [BulletFrame::SetListItemOrdinal
nsBlockFrame::RenumberLists nsBlockFrame::ReflowAround
nsInlineReflow::ReflowFrame nsInlineReflow::ReflowFrame nsBlockFrame::Reflow
0[d526a0]: AddRef: dc0c20: 3=>4 [nsHTMLLIElement::QueryInterface
nsBlockFrame::RenumberLists nsBlockFrame::ReflowAround
nsInlineReflow::ReflowFrame nsInlineReflow::ReflowFrame nsBlockFrame::ReflowB
0[d526a0]: Release: dc0c2c: 4=>3 [nsBlockFrame::RenumberLists
nsBlockFrame::ReflowAround nsInlineReflow::ReflowFrame
nsInlineReflow::ReflowFrame nsBlockFrame::ReflowBlockFrame nsBlockFrame::ReflowL
0[d526a0]: Release: dc0c2c: 3=>2 [nsFrame::~nsFrame
nsSplittableFrame::~nsSplittableFrame nsContainerFrame::~nsContainerFrame
nsHTMLContainerFrame::~nsHTMLContainerFrame nsBlockFrame::~nsBlockFrame
0[d526a0]: Release: dc0c2c: 2=>1
[nsGenericHTMLContainerElement::~nsGenericHTMLContainerElement
nsHTMLOListElement::~nsHTMLOListElement nsHTMLOListElement::`scalar deleting
destructor' nsHTMLOListE
If you whittle that done you'll see the unbalanced reference is here:
0[d526a0]: AddRef: dc0c2c: 3=>4 [nsFrame::nsFrame BulletFrame::BulletFrame
nsBlockFrame::Init HTMLStyleSheetImpl::ConstructFrameByDisplayType
HTMLStyleSheetImpl::ConstructFrame HTMLStyleSheetImpl::
Obviously that was a hastily written bug report:
"I looked the" should be "It looked like the" (second paragraph).
"If you whittle that done" should be "If you whittle that down" (next to last
paragraph).
I fixed the block frame code to free up the bullet frame and therefore free up
the bullet frame's content.
Comment 3•26 years ago
|
||
Requested verification of bug fix by 'assigned to' engineer.
Comment 4•26 years ago
|
||
Troy provide a test case for verification
still waiting for troy@netscape.com to do 1 of the following:
1) provide QA with a test case so we can mark it VERIFIED_FIXED
2) verify it himself and mark this bug VERIFIED-FIXED
Updated•26 years ago
|
QA Contact: 3819
Comment 6•26 years ago
|
||
will mark verified if reporter agrees with fix, tacit approval accepted
Updated•26 years ago
|
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•