Skip to content
  • darin's avatar
    Reviewed by Richard and John. · 2b5e6e2c
    darin authored
    	- fixed 3133207 -- crash in HTMLFrameElementImpl updateForNewURL at home.real.com
    
    	This refines Maciej's fix for 3052113, 3075392, and 3125412.
    
            * khtml/html/html_baseimpl.h: Remove detach() and parentWidget from HTMLFrameElementImpl.
            * khtml/html/html_baseimpl.cpp:
            (HTMLFrameElementImpl::HTMLFrameElementImpl): Take out initialization of unused parentWidget.
            (HTMLFrameElementImpl::updateForNewURL): Add case for when we are attached by did not allocate
    	a render object. In that case we just detach so we can attach again. Also fix the self-reference
    	check which was in there but not working.
            (HTMLFrameElementImpl::detach): Remove method since all it did was set unused parentWidget.
            (HTMLIFrameElementImpl::attach): Remove unused depth computation.
    
    	- fixed more leaks
    
            * khtml/rendering/render_replaced.h: Made the deref method inherited from khtml::Shared
    	private by using private inheritance. Changed the name of arenaDeref to deref, but it still
    	takes an arena parameter. Now incorrect deref's are compile-time errors instead of potential leaks.
            * khtml/rendering/render_replaced.cpp:
            (RenderWidget::detach): Rename arenaDeref to deref.
            (RenderWidget::resizeWidget): Ditto.
            (RenderWidget::eventFilter): Ditto.
            (RenderWidget::deref): Ditto.
    
            * khtml/rendering/render_form.cpp: (RenderFormElement::slotClicked):
    	Pass the arena when deref'ing the RenderFormElement.
            * kwq/WebCoreBridge.h: Add a field for the arena for the RenderPart.
            * kwq/WebCoreBridge.mm:
            (-[WebCoreBridge dealloc]): Pass the arena when deref'ing the RenderPart.
            (-[WebCoreBridge setRenderPart:]): Pass the arena when deref'ing the RenderPart. Store the arena
    	of the new part when storing the part pointer.
    
            * khtml/xml/dom_docimpl.cpp: (DocumentImpl::~DocumentImpl): Assert that the render object is
    	not nil, in an attempt to catch a leak I observed yesterday.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    2b5e6e2c