> 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

Reply via email to