Reviewed by Darin.
[WebKit-https.git] / WebCore / khtml / xml / dom_elementimpl.cpp
index 33b988a3694eba2d10b68f2cad5c837b7cf0a64a..3bfeae68760a8d44c28cff4b1c0096a488ab3edd 100644 (file)
@@ -408,12 +408,12 @@ RenderObject *ElementImpl::createRenderer(RenderArena *arena, RenderStyle *style
     return RenderObject::createObject(this, style);
 }
 
-void ElementImpl::attach()
+
+void ElementImpl::insertedIntoDocument()
 {
-#if SPEED_DEBUG < 1
-    createRendererIfNeeded();
-#endif
-    NodeBaseImpl::attach();
+    // need to do superclass processing first so inDocument() is true
+    // by the time we reach updateId
+    NodeBaseImpl::insertedIntoDocument();
 
     if (hasID()) {
         NamedAttrMapImpl *attrs = attributes(true);
@@ -426,7 +426,7 @@ void ElementImpl::attach()
     }
 }
 
-void ElementImpl::detach()
+void ElementImpl::removedFromDocument()
 {
     if (hasID()) {
         NamedAttrMapImpl *attrs = attributes(true);
@@ -438,7 +438,15 @@ void ElementImpl::detach()
         }
     }
 
-    NodeBaseImpl::detach();
+    NodeBaseImpl::removedFromDocument();
+}
+
+void ElementImpl::attach()
+{
+#if SPEED_DEBUG < 1
+    createRendererIfNeeded();
+#endif
+    NodeBaseImpl::attach();
 }
 
 void ElementImpl::recalcStyle( StyleChange change )
@@ -611,7 +619,7 @@ DOMString ElementImpl::toString() const
 
 void ElementImpl::updateId(const AtomicString& oldId, const AtomicString& newId)
 {
-    if (!attached())
+    if (!inDocument())
        return;
 
     if (oldId == newId)