[Webkit-unassigned] [Bug 8850] cocoa bindings - crash when DOM nodes are deleted while NSTreeController+NSTableView are bound

bugzilla-daemon at opendarwin.org bugzilla-daemon at opendarwin.org
Thu Jun 29 08:00:50 PDT 2006


http://bugzilla.opendarwin.org/show_bug.cgi?id=8850


darin at apple.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Attachment #9081|review?                     |review-
               Flag|                            |




------- Comment #14 from darin at apple.com  2006-06-29 08:00 PDT -------
(From update of attachment 9081)
A DOMNodeList is a dynamic list. The list itself shouldn't be changing -- the
contents of it should be changing. I suspect it's a bug that every call to
childNodes produces a distinct DOMNodeList. Existing DOMNodeList objects are
automatically updated to reflect the new child nodes.  

I'm not convinced about argument that will/did should be at the same time for
childNodes. I don't think it's good that for KVO we return a distinct static
array of child nodes every time. Wouldn't it be better if the KVO list was
dynamic just the way a DOMNodeList is? I'd think it would be straightforward to
wrap the DOMNodeList in something that is a dynamic NSArray rather than
allocating a static NSArray.

So for KVO, I suspect the node should not be sending a notification at all.
Instead, the list should be sending a notification indicating that its contents
are changing.

As far as the changes to WebCore::Node are concerned, I don't think it's
acceptable to add 12 bytes to every DOM node for this feature. We should
instead use a single bit to identify that a node is observed and store the ref
counts, callbacks, and contexts in a separate data structure (in a hash table,
I would think).

The context pointer should just be void*, not const void*.


-- 
Configure bugmail: http://bugzilla.opendarwin.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list