Changeset 20451 for S60/trunk/WebCore

Show
Ignore:
Timestamp:
03/23/07 13:48:16 (22 months ago)
Author:
zbujtas
Message:

2007-03-23 bujtas <zbujtas@gmail.com>

Reviewed by Sachin.
DESC: onFocus/onClick could destroy the node (and the associated rendered) under the cursor. fix to check
if the renderer is still valid.
http://bugs.webkit.org/show_bug.cgi?id=13172

  • kwq/KWQKHTMLPart.cpp:
Location:
S60/trunk/WebCore
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • S60/trunk/WebCore/ChangeLog

    r20444 r20451  
     12007-03-23  bujtas  <zbujtas@gmail.com> 
     2 
     3        Reviewed by Sriram. 
     4        DESC: onFocus/onClick could destroy the node (and the associated rendered) under the cursor. fix to check 
     5        if the renderer is still valid. 
     6        http://bugs.webkit.org/show_bug.cgi?id=13172 
     7 
     8        * kwq/KWQKHTMLPart.cpp: 
     9 
    110yadavall, reviewed by <zbujtas@gmail.com> 
    211        DESC: Fix NULL pointer check for CacheImage 
  • S60/trunk/WebCore/kwq/KWQKHTMLPart.cpp

    r20408 r20451  
    19511951 
    19521952    if(navNode) { 
    1953        navNode->ref(); 
    1954        if(navNode->renderer() && navNode->renderer()->isWidget()) { 
     1953        navNode->ref(); 
     1954        if(navNode->renderer() && navNode->renderer()->isWidget()) { 
    19551955            QWidget* w = static_cast<RenderWidget*>(navNode->renderer())->widget(); 
    19561956            if (w) { 
    19571957                w->clicked(); 
    1958         xmlDocImpl()->setFocusNode( navNode ); 
    1959                 //Get the focus node again as it may have to set to NULL because of onfocus="blur()" 
    1960               NodeImpl* focusNode = xmlDocImpl()->focusNode(); 
    1961               if(focusNode && activate && !w->isActive()) 
     1958                xmlDocImpl()->setFocusNode( navNode ); 
     1959                // onClick or onFocus could destroy the renderer 
     1960                if (navNode->renderer()) { 
     1961                    //Get the focus node again as it may have to set to NULL because of onfocus="blur()" 
     1962                    NodeImpl* focusNode = xmlDocImpl()->focusNode(); 
     1963                    if(focusNode && activate && !w->isActive()) 
    19621964                    w->activate(); 
     1965                } 
    19631966            } 
    1964        } 
    1965        else if(navNode->isHTMLElement())  { 
    1966           static_cast<HTMLElementImpl*>(navNode)->click(false); 
    1967       xmlDocImpl()->setFocusNode( navNode ); 
    1968        } 
    1969        navNode->deref(); 
     1967        } 
     1968        else if(navNode->isHTMLElement())  { 
     1969            static_cast<HTMLElementImpl*>(navNode)->click(false); 
     1970            xmlDocImpl()->setFocusNode( navNode ); 
     1971        } 
     1972        navNode->deref(); 
    19701973    } 
    19711974}