#9966 closed defect (fixed)
dojoAttachPoints leak
Reported by: | bill | Owned by: | bill |
---|---|---|---|
Priority: | high | Milestone: | 1.4 |
Component: | Dijit | Version: | 1.3.2 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
Apparently IE6 is leaking because _Widget.destroy doesn't null out/delete all the attachPoint references like this.containerNode, this.domNode, etc.
Simple enough to add that code.
Change History (8)
comment:1 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 Changed 12 years ago by
Priority: | normal → high |
---|---|
Resolution: | fixed |
Status: | closed → reopened |
IE6 is throwing an exception when destroy() is run after this changeset was committed.
I loaded test_Menu.html in IE6 and pressed the browser's Home Key and an exception is thrown "undefined is null or not an object".
comment:3 Changed 12 years ago by
Ah, thanks for the heads up. Looks like submenu2 is getting destroyed when it's parent PopupMenuItem is destroyed, but it's also getting another destroy() call from the loop in manager.js:
dojo.addOnWindowUnload(function(){ dojo.forEach(dijit.findWidgets(dojo.body()), function(widget){ if(widget.destroyRecursive){ widget.destroyRecursive(); }else if(widget.destroy){ widget.destroy(); } }); });
It's because every Menu is a child of <body> even though logically submenu2 is a child of another Menu's PopupMenuItem.
Guess I just need to add some flags to prevent double destroys.
comment:4 Changed 12 years ago by
comment:6 Changed 12 years ago by
comment:7 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
(In [20248]) Avoid a memory leak on IE6. Fixes #9966 !strict.