Hello Everybody,
I'm posting it again because its maybe getting lost in the long thread
before.
After some fiddeling I found this combination of the disposer methods to
be about 5 times faster then the version in Object.js.
One change is that in the class method dispose there is just a call to
dispose if the object has the attribute _disposed = false and the entry
of the object in the _db array is nullyfied just in the dispose instance
method not a second time in the dispose class method.
Another change was to do just assignments with null and not calling the
delete operator.
Please have a look if I missed something here. If it is ok I'll be happy
to provide a patch.
qx.core.Object.prototype.dispose = function() {
if (this.getDisposed()) {
return;
}
// Dispose user data
if (this._userData)
{
for(var vKey in this._userData) {
this._userData[vKey] = null;
}
this._userData = null;
}
// Finally cleanup properties
if (this._objectproperties)
{
var a = this._objectproperties.split(qx.constant.Core.COMMA);
var i, l;
for (i=0, l=a.length; i<l; i++) {
this[qx.OO.values[a[i]]] = null;
}
this._objectproperties = null;
}
// Delete Entry from Object DB
//
qx.core.Object._db[this._hashCode] = null;
this._disposed = true;
}
qx.core.Object.dispose = function()
{
var vObject;
for (var i=qx.core.Object._db.length-1; i>=0; i--)
{
vObject = qx.core.Object._db[i];
if (vObject != null && vObject._disposed === false )
{
vObject.dispose();
}
}
}
--
Mit freundlichen Grüßen
Dietrich Streifert
Visionet GmbH
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel