> > 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

Reply via email to