Closed Bug 3730 Opened 26 years ago Closed 25 years ago

[DOGFOOD]MLK: 1424 bytes leaked XP Observer list for Image Requests leaking.

Categories

(Core :: Graphics: ImageLib, defect, P3)

Sun
Solaris
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: bruce, Assigned: pnunn)

References

Details

(Whiteboard: [PDT-])

A comment in ImageRequestImpl::~ImageRequestImpl() indicates that image lib is supposed to manage the destruction of the observer list. However, that doesn't appear to be happening. MLK: 1424 bytes leaked in 89 blocks * This memory was allocated from: malloc [rtlib.o] PR_Malloc [prmem.c:38] XP_AddObserver [obs.c:159] ImageRequestImpl::Init(void*,const char*,nsIImageRequestObserver*,const unsigned int*,unsigned int,unsigned int,unsigned int,ilINetContext*) [nsImageRequest.cpp:86] ImageGroupImpl::GetImage(const char*,nsIImageRequestObserver*,const unsigned int*,unsigned int,unsigned int,unsigned int) [nsImageGroup.cpp:233] nsFrameImageLoader::Init(nsIPresContext*,nsIImageGroup*,const nsString&,const unsigned int*,nsIFrame*,const nsSize&,unsigned int(*)(nsIPresContext&,nsIFrame*,int),int,int) [nsFrameImageLoader.cpp:156] nsPresContext::StartLoadImage(const nsString&,const unsigned int*,nsIFrame*,const nsSize&,unsigned int(*)(nsIPresContext&,nsIFrame*,int),int,int,nsIFrameImageLoader**) [nsPresContext.cpp:734] nsHTMLImageLoader::StartLoadImage(nsIPresContext*,nsIFrame*,unsigned int(*)(nsIPresContext&,nsIFrame*,int),int,int&) [nsImageFrame.cpp:197] nsHTMLImageLoader::GetDesiredSize(nsIPresContext*,const nsHTMLReflowState&,nsIFrame*,unsigned int(*)(nsIPresContext&,nsIFrame*,int),nsHTMLReflowMetrics&) [nsImageFrame.cpp:270] nsImageFrame::GetDesiredSize(nsIPresContext*,const nsHTMLReflowState&,nsHTMLReflowMetrics&) [nsImageFrame.cpp:502] nsImageFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsImageFrame.cpp:530] nsInlineReflow::ReflowFrame(nsIFrame*,int,unsigned int&) [nsInlineReflow.cpp:316] nsBlockFrame::ReflowInlineFrame(nsBlockReflowState&,nsLineBox*,nsIFrame*,int*) [nsBlockFrame.cpp:2650] nsBlockFrame::ReflowLine(nsBlockReflowState&,nsLineBox*,int*) [nsBlockFrame.cpp:1816] nsBlockFrame::ReflowDirtyLines(nsBlockReflowState&) [nsBlockFrame.cpp:1564] nsBlockFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsBlockFrame.cpp:984] nsAreaFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsAreaFrame.cpp:509] nsContainerFrame::ReflowChild(nsIFrame*,nsIPresContext&,nsHTMLReflowMetrics&,con st nsHTMLReflowState&,unsigned int&) [nsContainerFrame.cpp:371] nsTableCellFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsTableCellFrame.cpp:501] nsContainerFrame::ReflowChild(nsIFrame*,nsIPresContext&,nsHTMLReflowMetrics&,con st nsHTMLReflowState&,unsigned int&) [nsContainerFrame.cpp:371] nsTableRowFrame::InitialReflow(nsIPresContext&,nsHTMLReflowMetrics&,RowReflowSta te&,unsigned int&,nsTableCellFrame*,int) [nsTableRowFrame.cpp:808] nsTableRowFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsTableRowFrame.cpp:1418] nsContainerFrame::ReflowChild(nsIFrame*,nsIPresContext&,nsHTMLReflowMetrics&,con st nsHTMLReflowState&,unsigned int&) [nsContainerFrame.cpp:371] nsTableRowGroupFrame::ReflowMappedChildren(nsIPresContext&,nsHTMLReflowMetrics&, RowGroupReflowState&,unsigned int&,nsTableRowFrame*,nsReflowReason,int) [nsTableRowGroupFrame.cpp:420] nsTableRowGroupFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsTableRowGroupFrame.cpp:948] nsContainerFrame::ReflowChild(nsIFrame*,nsIPresContext&,nsHTMLReflowMetrics&,con st nsHTMLReflowState&,unsigned int&) [nsContainerFrame.cpp:371] nsTableFrame::ResizeReflowPass1(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&,nsTableRowGroupFrame*,nsReflowReason,int) [nsTableFrame.cpp:2599] nsTableFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsTableFrame.cpp:2455] nsContainerFrame::ReflowChild(nsIFrame*,nsIPresContext&,nsHTMLReflowMetrics&,con st nsHTMLReflowState&,unsigned int&) [nsContainerFrame.cpp:371] nsTableOuterFrame::Reflow(nsIPresContext&,nsHTMLReflowMetrics&,const nsHTMLReflowState&,unsigned int&) [nsTableOuterFrame.cpp:958] * Block of 16 bytes (89 times); last block at 0xc1beb0
Status: NEW → ASSIGNED
thanks for the report on this. I'll track it down. -pn
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
thanks for the report on this. I'll track it down. -pn
thanks for the report on this. I'll track it down. -pn
Arrrgggh. I mistakenly closed this bug when I was accepting it. All attempts to remedy the situation resulted in "comment stutter". This bug is reopened because it never should have been closed. arrrghhhg. -pnunn
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: M5
if.cpp: il_image_destroyed_notify() if.cpp: IL_DestroyGroupContext() destroys the image observerlist. But this appears to be about the image REQUEST observer in mozilla/gfx/src/nsImageRequest.cpp. Kipp has been working with this code. The status of this bug may have changed. Anyone have Purify?
Target Milestone: M5 → M6
Status: REOPENED → ASSIGNED
Target Milestone: M6 → M7
I need more time on this one. It looks to me like things are freed properly, but obviously, they aren't. pushing to M7. -pn
Bruce: I'm having trouble tracking this down. If you run across any additional info, it would be great. thnx. -pn
Target Milestone: M7 → M8
Target Milestone: M8 → M9
I need more time. Gotta push it to M9.
-> m10
Target Milestone: M10 → M11
Summary: MLK: XP Observer list for Image Requests leaking. → MLK: 1424 bytes leaked XP Observer list for Image Requests leaking.
Blocks: 14516
Summary: MLK: 1424 bytes leaked XP Observer list for Image Requests leaking. → [DOGFOOD]MLK: 1424 bytes leaked XP Observer list for Image Requests leaking.
Is this a Solaris only issue? Does this have big cumulative effect? The PDT asked that I ask....
Whiteboard: [PDT-]
No comments, setting to [PDT-]
Blocks: 17432
Target Milestone: M11 → M12
I think my checkin today will take care of this leak. I haven't checked it with purify yet, but it looks fine with bloaty. -pn
Status: ASSIGNED → RESOLVED
Closed: 26 years ago25 years ago
Resolution: --- → FIXED
bruce, would you verify? -pn
I haven't done a build in a long time (and don't have the time to do one for some time yet). Would it be possible to do this with the other tools that exist for non-Bruce people?
Bruce: I'm running purify on NT today. I'll double check the fix. -pn
Thanks, Pam!
[nagged pnunn by e-mail re: verifying this bug.]
QA Contact: elig → pnunn
No feedback received from pnunn after several nags over a 5 week timeframe; therefore, QA assigning to pnunn.
I just checked my purify on this and the leak is gone....so count it verified. -P
Status: RESOLVED → VERIFIED
QA Contact: pnunn → elig
No longer blocks: 17432
You need to log in before you can comment on or make changes to this bug.