Closed Bug 18145 Opened 25 years ago Closed 25 years ago

[MLK] Leaking nsBlockFrame in nsGfxTextControlFrame::Reflow()

Categories

(Core :: Layout, defect, P2)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: beard, Assigned: buster)

References

()

Details

(Whiteboard: Reporter to verify fix in latest build 11/29)

Look at the cvsblame URL above, you'll notice that you're creating an
nsBlockFrame instance, but if mDisplayFrame is already set, you're clobbering,
and leaking the previous one. This seems to happen once when running appRunner
and loading www.mozilla.org. It's a pretty significant leak, my leak report shows
this single object holding on to 18248 bytes.

Here's an experimental patch that fixes the leak, and also fixes an nsTextNode
leak, by using an nsCOMPtr.

Index: mozilla/layout/html/forms/src/nsGfxTextControlFrame.cpp
===================================================================
RCS file: /cvsroot/mozilla/layout/html/forms/src/nsGfxTextControlFrame.cpp,v
retrieving revision 3.85
diff -r3.85 nsGfxTextControlFrame.cpp
1581,1582c1581,1582
<           nsIContent* content;
<           rv = NS_NewTextNode(&content);
---
>           nsCOMPtr<nsIContent> content;
>           rv = NS_NewTextNode(getter_AddRefs(content));
1622a1623,1626
>           if (mDisplayFrame) {
>             mDisplayFrame->Destroy(*mFramePresContext);
>             mDisplayFrame = nsnull;
>           }
Severity: normal → major
Status: NEW → ASSIGNED
Priority: P3 → P2
Target Milestone: M12
thanks, patrick.  I'll look at this over the weekend.
Whiteboard: fix in hand
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Whiteboard: fix in hand
fixed.  patrick, could you please verify when you get a chance?
I not sure how to verify this fix since I'm the assigned QA contact. Patrick ,
could you please mark this as fixed ?
Whiteboard: Reporter to verify fix in latest build 11/29
Status: RESOLVED → VERIFIED
Marking fixed per last comments.
You need to log in before you can comment on or make changes to this bug.