[patch] to bug 88243

Koos Vriezen koos.vriezen at xs4all.nl
Sun Feb 13 15:23:11 GMT 2005


On Sun, Feb 13, 2005 at 03:02:02PM +0100, Paul Temple wrote:
> Leo Savernik wrote:
> > > Yes, I thought you would say that, but why move to xml/* and
> > > not dom/* ?
> >
> > Because xml/ interferes with the renderer, and never dom/
> > (which resembles the interface only, and must stay as
> > lightweight as possible).
> 
> If you agree, I'll revert my last patch to ecma/kjs_dom.cpp and 
> apply the attached one instead

I haven't tried your patch, but if I place kdBacktrace in
HTMLObjectElementImpl::attach (called when attacked and too soon for
applet/object to create (*)) and RenderPartObject::updateWidget that
performs the object creation, I see:

(*) eg for 
  <applet NAME="myappletname" WIDTH=800 HEIGHT=150>
    <param NAME="code" VALUE="myapplet">
  </applet
  we have to wait for all params to be inserted as our child

2: /../lib/libkhtml.so.4(DOM::HTMLObjectBaseElementImpl::attach()+0x257)
3: /../lib/libkhtml.so.4(DOM::HTMLAppletElementImpl::attach()+0x10f)
4: /../lib/libkhtml.so.4(khtml::KHTMLParser::insertNode(DOM::NodeImpl*, bool)+0x17b)
5: /../lib/libkhtml.so.4(khtml::KHTMLParser::parseToken(khtml::Token*)+0x230)
6: /../lib/libkhtml.so.4(khtml::HTMLTokenizer::processToken()+0x62)
7: /../lib/libkhtml.so.4(khtml::HTMLTokenizer::parseTag(khtml::TokenizerString&)+0x3b8)
8: /../lib/libkhtml.so.4(khtml::HTMLTokenizer::write(khtml::TokenizerString const&, bool)+0x380)
9: /../lib/libkhtml.so.4(KHTMLPart::write(char const*, int)+0x165)
10: /../lib/libkhtml.so.4(KHTMLPart::slotData(KIO::Job*, QMemArray<char> const&)+0x93)

and after that

2: /../lib/libkhtml.so.4(khtml::RenderPartObject::updateWidget()+0x168)
3: /../lib/libkhtml.so.4(khtml::RenderPartObject::close()+0x4b)
4: /../lib/libkhtml.so.4(DOM::NodeImpl::closeRenderer()+0x3a)
5: /../lib/libkhtml.so.4(DOM::NodeImpl::close()+0x22)
6: /../lib/libkhtml.so.4(DOM::ElementImpl::close()+0x25)
7: /../lib/libkhtml.so.4(khtml::KHTMLParser::popOneBlock()+0x4e)
8: /../lib/libkhtml.so.4(khtml::KHTMLParser::popBlock(int)+0x68)
9: /../lib/libkhtml.so.4(khtml::KHTMLParser::processCloseTag(khtml::Token*)+0x76)
10: /../lib/libkhtml.so.4(khtml::KHTMLParser::parseToken(khtml::Token*)+0x1c4)
11: /../lib/libkhtml.so.4(khtml::HTMLTokenizer::processToken()+0x62)
12: /../lib/libkhtml.so.4(khtml::HTMLTokenizer::parseTag(khtml::TokenizerString&)+0x3b8)
13: /../lib/libkhtml.so.4(khtml::HTMLTokenizer::write(khtml::TokenizerString const&, bool)+0x380)
14: /../lib/libkhtml.so.4(KHTMLPart::write(char const*, int)+0x165)
15: /../lib/libkhtml.so.4(KHTMLPart::slotData(KIO::Job*, QMemArray<char> const&)+0x93)

Your patch will move the second backtrace to the 4 line of first one. That
will miss it the params IIRC, no? You can easy verify it.

Koos




More information about the kfm-devel mailing list