WebCore:
[WebKit-https.git] / WebCore / html / HTMLInputElement.cpp
index dca77aa1a02c10cbe511c767df219e7546c6d802..9620b13e823c7a3692a425bcdddfa88e50d400b6 100644 (file)
@@ -111,7 +111,6 @@ HTMLInputElement::HTMLInputElement(const QualifiedName& tagName, Document* doc,
 
 void HTMLInputElement::init()
 {
-    m_imageLoader = 0;
     m_type = TEXT;
     m_maxLen = cMaxLen;
     m_size = 20;
@@ -145,8 +144,6 @@ HTMLInputElement::~HTMLInputElement()
 
     document()->checkedRadioButtons().removeButton(this);
 
-    delete m_imageLoader;
-
     // Need to remove this from the form while it is still an HTMLInputElement,
     // so can't wait for the base class's destructor to do it.
     removeFromForm();
@@ -345,10 +342,8 @@ void HTMLInputElement::setInputType(const String& t)
     }
     m_haveType = true;
 
-    if (inputType() != IMAGE && m_imageLoader) {
-        delete m_imageLoader;
-        m_imageLoader = 0;
-    }
+    if (inputType() != IMAGE && m_imageLoader)
+        m_imageLoader.clear();
 }
 
 const AtomicString& HTMLInputElement::type() const
@@ -615,7 +610,7 @@ void HTMLInputElement::parseMappedAttribute(MappedAttribute *attr)
     } else if (attr->name() == srcAttr) {
         if (renderer() && inputType() == IMAGE) {
             if (!m_imageLoader)
-                m_imageLoader = new HTMLImageLoader(this);
+                m_imageLoader.set(new HTMLImageLoader(this));
             m_imageLoader->updateFromElement();
         }
     } else if (attr->name() == usemapAttr ||
@@ -735,7 +730,7 @@ void HTMLInputElement::attach()
 
     if (inputType() == IMAGE) {
         if (!m_imageLoader)
-            m_imageLoader = new HTMLImageLoader(this);
+            m_imageLoader.set(new HTMLImageLoader(this));
         m_imageLoader->updateFromElement();
         if (renderer()) {
             RenderImage* imageObj = static_cast<RenderImage*>(renderer());