onload event listeners attached to NodeImpls which fail to be attached

Andrew Coles andrew_coles at yahoo.co.uk
Thu May 26 15:15:34 BST 2005


I've looked through the Webcore source to see how they deal with this problem.  
It appears that they don't store or use a pointer to the original nodeimpl in 
JSLazyEventListener; the important difference is that in parseCode() the 
following chunk of code is omitted:

if (originalNode)
{
// Add the event's home element to the scope
// (and the document, and the form - see KJS::HTMLElement::eventHandlerScope)
  ScopeChain scope = listener.scope();
  Object thisObj = Object::dynamicCast(getDOMNode(exec, originalNode));
  if (thisObj.isValid()) {
    static_cast<DOMNode*>(thisObj.imp())->pushEventHandlerScope(exec, scope);
    listener.setScope(scope);
  }
}

Removing it causes http://cis.strath.ac.uk/~ac/remangle2.html to no longer 
crash Konqueror.  But, the code is obviously there for a reason; any offers?

Thanks,

Andrew




More information about the kfm-devel mailing list