- fixed <rdar://problem/3508825>: REGRESSION (100-116): crash in
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Dec 2003 23:25:54 +0000 (23:25 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Dec 2003 23:25:54 +0000 (23:25 +0000)
        HTMLGenericFormElementImpl::attach at sonyericsson.com

        Reviewed by Maciej.

        * khtml/html/html_formimpl.cpp:
        (HTMLGenericFormElementImpl::attach):
        Move a few lines inside an existing nil check to prevent nil dereference.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@5784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/html/html_formimpl.cpp

index 9455f32b512833c794b53388253bf2fff0094b6c..0f565b7a7b4f248b3846533fe04ec49e019118c9 100644 (file)
@@ -1,3 +1,14 @@
+2003-12-12  John Sullivan  <sullivan@apple.com>
+
+        - fixed <rdar://problem/3508825>: REGRESSION (100-116): crash in 
+        HTMLGenericFormElementImpl::attach at sonyericsson.com
+
+        Reviewed by Maciej.
+
+        * khtml/html/html_formimpl.cpp:
+        (HTMLGenericFormElementImpl::attach):
+        Move a few lines inside an existing nil check to prevent nil dereference.
+
 2003-12-12  John Sullivan  <sullivan@apple.com>
 
         - fixed <rdar://problem/3508760>: tabbing to out-of-sight link behaves 
index 546a249f5206be6a4fd0a93221a99eb2408bdbc9..b6db093f79685de5228b88c6ef29c29b18716786 100644 (file)
@@ -761,17 +761,18 @@ void HTMLGenericFormElementImpl::attach()
     // The call to updateFromElement() needs to go after the call through
     // to the base class's attach() because that can sometimes do a close
     // on the renderer.
-    if (m_render)
+    if (m_render) {
         m_render->updateFromElement();
     
-    // Delayed attachment in order to prevent FOUC can result in an object being
-    // programmatically focused before it has a render object.  If we have been focused
-    // (i.e., if we are the focusNode) then go ahead and focus our corresponding native widget.
-    // (Attach/detach can also happen as a result of display type changes, e.g., making a widget
-    // block instead of inline, and focus should be restored in that case as well.)
-    if (getDocument()->focusNode() == this && m_render->isWidget() && 
-        static_cast<RenderWidget*>(renderer())->widget())
-        static_cast<RenderWidget*>(renderer())->widget()->setFocus();
+        // Delayed attachment in order to prevent FOUC can result in an object being
+        // programmatically focused before it has a render object.  If we have been focused
+        // (i.e., if we are the focusNode) then go ahead and focus our corresponding native widget.
+        // (Attach/detach can also happen as a result of display type changes, e.g., making a widget
+        // block instead of inline, and focus should be restored in that case as well.)
+        if (getDocument()->focusNode() == this && m_render->isWidget() && 
+            static_cast<RenderWidget*>(renderer())->widget())
+            static_cast<RenderWidget*>(renderer())->widget()->setFocus();
+    }
 }
 
 HTMLFormElementImpl *HTMLGenericFormElementImpl::getForm() const