Opened 11 years ago

Closed 11 years ago

#11656 closed defect (fixed)

AccordionContainer Destroy memory leak on IE8

Reported by: mzoks Owned by:
Priority: high Milestone: 1.5.1
Component: Dijit Version: 1.5
Keywords: AccordionContainer IE8 Destory Cc:
Blocked By: Blocking:

Description (last modified by bill)

On IE8, the AccordionContainer is destroying it's child ContentPanes?, but not the widgets within them. I've enhanced the test_AccordionContainerDestroy.html test to include a button widget within the one ContentPane?.

Attachments (1)

test_AccordionContainerDestroy.html (2.3 KB) - added by mzoks 11 years ago.

Download all attachments as: .zip

Change History (3)

Changed 11 years ago by mzoks

comment:1 Changed 11 years ago by bill

Description: modified (diff)
Milestone: tbd1.5.1

Thanks for the report and test case. AccordionContainer wraps each child (ContentPane, etc.) in an AccordionInnerContainer widget. The problem is that AccordionContainer.removeChild(child) needs to remove the child from the AccordionInnerContainer before destroying the AccordionInnerContainer, lest the child's DOM get destroyed too.

Anyway, I'll check in a fix. This is a regression so I guess I should add it to 1.5.1 too (in addition to trunk).

comment:2 Changed 11 years ago by bill

Resolution: fixed
Status: newclosed

(In [22794]) On AccordionContainer.removeChild(child), remove child from AccordionInnerContainer wrapper before destroying wrapper, so that child DOM nodes don't get destroyed along with wrapper. Fixes #11656.

Also fixing the destroy() test in !AccordionContainer_a11y.html (it would never fail even if Accordion was broken), and moving that test to AccordionContainer.html since it works w/out robot. Refs #11488 ([22787]).

Note: See TracTickets for help on using tickets.