OK, I have overseen this issue. The only option I think we have is to remove the method fromHashCode completely. However we could add a method fromDbKey. What do you think?
Sebastian Hugh Gibson schrieb: >> This bug is fixed in SVN. You can apply the attached patch to your >> checkout / download to fix this in your qooxdoo version, too. > > I don't think it is fixed - though I see that you picked up on another > implication of it, that the wrong entry was cleared from the _db array when > disposing. > > You still use qx.Class._db as the reference array of all objects. However, an > object will be omitted from the array if vAutoDispose is set to false, so for > those objects you will never be able to find them from the hash code. > > And then, if you have an object which is added *after* one with vAutoDispose > set to false, its index in the _db array *does* *not* *correspond* with the > value of this._hashCode. Therefore the call to fromHashCode will return the > wrong object, as it depends on the index into the _db array being the same as > the hash code. > > To illustrate: > > Object vAutoDispose Hashcode _db > A true 0 [A] > B true 1 [A, B] > C false 2 [A, B] > D true 3 [A, B, D] > E true 4 [A, B, D, E] > > Now, qx.Object.fromHashCode(D.toHashCode) returns E. > qx.Object.fromHashCode(C.toHashCode) returns D. > > I also see that you've left the class toHashCode function untouched. So > again, if you call this function with an object which is not derived from > qx.object, it will allocate a hash code to it but won't remember it in the > _db array. If you never intend a non-qx.object parameter being passed to the > function, I suggest you get rid of the code to test for the existence of the > hashCode member, and just return o.hashCode directly. > > Hugh > > ------------------------------------------------------------------------- > 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 ------------------------------------------------------------------------- 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
