> I think I have to jump in this discussion. > I've a problem with memory usage of my qooxdoo application too and > tried the mentioned hints. > If I use the additional options in the make file to show the > missing destruct definitions, the only messages I see, come from > the framework itself: > > 035443 DEBUG: testgui.Report[1004]: Disposing: [object > testgui.Report]FireBug.js (line 75) > Missing destruct definition for '_scroller' in > qx.ui.table.pane.FocusIndicator[1111]: [object > qx.ui.table.pane.Scroller]Log.js (line 557)
> qx.ui.table.pane.FocusIndicator[1654]: [object > qx.ui.table.pane.Scroller]Log.js (line 557) > Missing destruct definition for '_lastMouseDownCell' in > qx.ui.table.pane.Scroller[1629]: [object Object]Log.js (line 557) > Missing destruct definition for '_scroller' in > qx.ui.table.pane.FocusIndicator[4545]: [object > qx.ui.table.pane.Scroller]Log.js (line 557) > > Could anyone give me a hint if these missing destruct definitions > are my fault? Or if a qooxdoo developer has to look at their > destructors ;) Don't forget that there's a number of problems with tables in that objects are created to implement functionality in the table, and passed through in the constructor or "set" calls. However, it's not clear which class is then responsible for disposing of them. There's an extended discussion about memory leaks caused by this at http://bugzilla.qooxdoo.org/show_bug.cgi?id=753 There may be framework errors from this (see message about combobox). Fixing these can't be done by simple dispose calls - there's a more complex question about who has ownership of the created subsidiary objects. Also, I've just taken a quick look at some of the code you checked in from the patches here and I'm not sure that it's correct due to an ownership issue. I haven't reviewed it completely, but found the following. qx.ui.table.pane.CellEvent is passed an instance of the parent qx.ui.table.pane.Scroller object in the constructor, e.g. in _onMouseupFocusIndicator: this.dispatchEvent(new qx.ui.table.pane.CellEvent(this, "cellClick", e), true); CellEvent stores the scroller instance in the _scroller member. With revision 14009 you added this code to CellEvent: destruct : function() { this._disposeObjects("_scroller"); } But when the cell event has finished, you definitely don't want to be destroying the parent scroller object! This needs a lot more careful analysis. And finally could I say that tracing the patches and reasons for changes is very difficult when you haven't got an issue for them, with full logging of issue number in SVN checkin messages; and SVN revision numbers in the issue. 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://sourceforge.net/services/buy/index.php _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel