> > This is critical issue for us. If it's not fixed in 0.7.3 we will > > have to run with a patched qooxdoo (once I find the solution). > > It was relatively easy to clean up the extra objects in the > appropriate > destruct functions (selectionModel and tableColumnModel in table.js, > tablePaneModel in scroller.js) but I am having no luck in removing > the > memory leak (as distinct from the object leak). > > It would appear that there are circular references between the table > objects so they can't be garbage collected. I tried removing all > event > listeners in table.js with no luck. There are a load added in > scroller.js > which aren't removed, and I haven't tried removing those yet.
I've done some more digging and tracing. I've found that it's not necessary to call removeEventListeners as the __listeners object is disposed deeply with a level of 2. This means that all references to objects are removed. Looking at properties, there is a reference to http://qooxdoo.org/documentation/0.7/property_features#memory_managment to the "dispose" key which determines whether an object is disposed or not. It states "Also all properties which need an instance of a class, defined by using a classname as check are automatically handled." This implies that the property class instance is disposed, but actually it just dereferences the object - from qx.core.Object.js, destruct(): if (properties[name].dispose) { this[storeUser[name]] = this[storeTheme[name]] = this[storeInherit[name]] = this[storeUseinit[name]] = this[storeInit[name] ] = undefined; } I've added a note to the wiki about this. So setting dispose : true for the table and scroller properties that contain objects that should be removed has no effect (it was being set true anyway automatically). Therefore the only thing that's left is explicit circular references. There are some created between the various table objects. I'll investigate those next. Hugh ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ qooxdoo-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
