I'd like to make a small request if possible to enable the Checkbox
widget to be triple-state (true,false,null).  This seems to be the
standard for most rich client widget sets so that the control can
support notions of nullability for database apps.

I'm currently building a database search utility using your toolset
(great work BTW) and this would help in communicating with the database.
Thanks for all your hard work.

Mike

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Sebastian Werner
Sent: Sunday, February 12, 2006 3:43 AM
To: qooxdoo
Subject: [qooxdoo-devel] Memory Leaks: Part II

Hi All!

I have detected that a basic Index.html of the qooxdoo examples does not
leak, even not in the public version (using a combined qooxdoo.js file).

The first thing I thought some days ago was, that it simply depends on
the file size of the included JavaScript files. This does not seems to
be the complete truth anymore.

I have made some tests inside our _modifyElement implementation in
QxWidget. The memory leak seems to be not detectable if the modifier is
completely empty. So I begun to add one line after line. It seems to
break at this code:

leaks:
this._isCreated = QxUtil.isValidObject(propValue);


I have tried some alternatives:

does not leak:
this._isCreated = propValue ? true : false;

leaks:
var foo = QxUtil.isValidObject(propValue);

leaks:
var foo = typeof propValue === QxConst.TYPEOF_OBJECT && propValue !==
null && !(propValue instanceof Array);

does not leak:
var foo = typeof propValue === QxConst.TYPEOF_OBJECT;

does not leak:
var foo = propValue !== null;

leaks:
var foo = !(propValue instanceof Array);

does not leak:
this._isCreated = QxUtil.isValidElement(propValue);

The method QxUtil.isValidElement (and QxUtil.isInvalidElement) are new
helper methods which try to detect if a incoming variable is a DOM
element node (nodeType == 1). I have replaced the old "isValidObject" in
the element modifier with the new "isValidElement".

This have fixed our last memory leak. I'm not already sure what the
exact reason for this misbehavior is. The IE seems to have a problem if
we use the "instanceof" operator on DOM nodes. It seems to be enough to
have this part only once in your code. As it shows this leak creates the

+2MB increase of memory after each reload (the exact leak size depends
on the size of the included javascript file). And the interesting thing
is, that it does not depend on the number of calls you do on this
"instanceof" operator with DOM nodes as test value. A single usage is
enough.

Please be sure to not use QxUtil.isValidObject in your code to detect
valid HTML nodes. Also please don't use the instanceof operator.

After some more hours the memory consumption of IE seems to be quite
stable.

Sebastian


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log
files for problems?  Stop!  Download the new AJAX search engine that
makes searching your log files as easy as surfing the  web.  DOWNLOAD
SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642
_______________________________________________
Qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to