Status

()

P2
normal
VERIFIED FIXED
20 years ago
19 years ago

People

(Reporter: troy, Assigned: buster)

Tracking

Trunk
x86
Windows NT
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

20 years ago
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::
(Reporter)

Comment 1

20 years ago
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).

Updated

20 years ago
Status: NEW → RESOLVED
Last Resolved: 20 years ago
Resolution: --- → FIXED

Comment 2

20 years ago
I fixed the block frame code to free up the bullet frame and therefore free up
the bullet frame's content.

Comment 3

20 years ago
Requested verification of bug fix by 'assigned to' engineer.

Comment 4

20 years ago
Troy provide a test case for verification

Comment 5

20 years ago
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

20 years ago
QA Contact: 3819

Comment 6

20 years ago
will mark verified if reporter agrees with fix, tacit approval accepted
(Reporter)

Comment 7

20 years ago
I agree

Updated

20 years ago
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.