Make DOM classes start with a reference count of 1, like all other RefCounted
        
Patch by Darin Adler <darin@apple.com> on 2009-08-22
Reviewed by Oliver Hunt.

Next step: Element, HTMLElement, HTMLAnchorElement, HTMLAppletElement,
HTMLAreaElement, HTMLEmbedElement, HTMLFrameElement, HTMLIFrameElement,
HTMLObjectElement, HTMLPlugInElement, HTMLPlugInImageElement.

* DerivedSources.make: Fix error seen every time we build by escaping the $
in the build rule, since you have to use $$ for that in make.

* WebCore.base.exp: Updated.

* bindings/objc/DOM.mm:
Added now-needed include of SVGNames.h.

* dom/Document.cpp: Added now-needed include of SVGNames.h.
(WebCore::Document::createElement): Use create instead of new.

* dom/Element.cpp:
(WebCore::Element::Element): Added ConstructionType argument so the caller
can determine whether this starts with a reference count of either 0 or 1.
Later we will remove this again once they are all 1.
(WebCore::Element::create): Added.

* dom/Element.h: Added create and made constructor protected.

* dom/StyledElement.cpp:
(WebCore::StyledElement::StyledElement): Added ConstructionType argument.
* dom/StyledElement.h: Made many functions protected or private, including
the constructor.

* dom/make_names.pl: Use create to create the base elements HTMLElement,
SVGElement, and WMLElement.

* editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply): Use create instead of new.
* editing/UnlinkCommand.cpp:
(WebCore::UnlinkCommand::doApply): Ditto.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::create): Added.
* html/HTMLAnchorElement.h: Made constructor protected and added create.
Also made m_rootEditableElementForSelectionOnMouseDown a RefPtr.

* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::create): Added.
* html/HTMLAppletElement.h: Made constructor private and added create.

* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::create): Added.
* html/HTMLAreaElement.h: Made constructor private and added create.

* html/HTMLElement.cpp:
(WebCore::HTMLElement::create): Added.
* html/HTMLElement.h: Made constructor protected and added create.
Made other functions protected and private. Also added inline
definition of constructor.

* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::create): Added.
* html/HTMLEmbedElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLFrameElement.cpp:
(WebCore::HTMLFrameElement::create): Added.
(WebCore::HTMLFrameElement::parseMappedAttribute):
* html/HTMLFrameElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLFrameElementBase.h: Made functions protected and private.

* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): Pass
CreateElement so reference count starts at 1.

* html/HTMLFrameOwnerElement.h: Made functions protected and private.

* html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::create): Added.
* html/HTMLIFrameElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::create): Added.
(WebCore::HTMLObjectElement::containsJavaApplet): Changed while loop
into a for loop and tweaked formatting.

* html/HTMLObjectElement.h: Made constructor private and added create.
Made other functions private.

* html/HTMLPlugInElement.h: Made constructor protected.
Made other functions protected and private.

* html/HTMLPlugInImageElement.h: Made constructor and another function
protected.

* html/HTMLTagNames.in: Removed createWithNew from all classes that
now have create functions. Moved conditional noscript to a separate
paragraph.

* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::addSpanWithClassName): Use create.
(WebCore::HTMLViewSourceDocument::addLink): Ditto.
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData): Ditto.

* svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement): Pass CreateElementZeroRefCount
so reference count still starts at 0. Will change this class later.
(WebCore::SVGElement::create): Added.
* svg/SVGElement.h: Added create, made constructor protected, and
made other functions protected and private. Removed unneeded
SVGNames.h include.

* svg/SVGExternalResourcesRequired.h: Added now-needed SVGNames.h
include.

* svg/SVGStopElement.h: Added now-needed SVGNames.h include.
Made functions private.

* wml/WMLElement.cpp:
(WebCore::WMLElement::WMLElement): Pass CreateElementZeroRefCount
so reference count still starts at 0. Will change this class later.
(WebCore::WMLElement::create): Added.
* wml/WMLElement.h: Added create and made constructor protected.

* wml/WMLTagNames.in: Removed createWithNew from WMLElement.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/html/HTMLPlugInImageElement.h b/WebCore/html/HTMLPlugInImageElement.h
index ec3b258..7725a5a 100644
--- a/WebCore/html/HTMLPlugInImageElement.h
+++ b/WebCore/html/HTMLPlugInImageElement.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -30,15 +30,16 @@
 
 class HTMLPlugInImageElement : public HTMLPlugInElement {
 public:
-    HTMLPlugInImageElement(const QualifiedName& tagName, Document*);
     virtual ~HTMLPlugInImageElement();
 
-    bool isImageType();
-
     const String& serviceType() const { return m_serviceType; }
     const String& url() const { return m_url; }
 
 protected:
+    HTMLPlugInImageElement(const QualifiedName& tagName, Document*);
+
+    bool isImageType();
+
     OwnPtr<HTMLImageLoader> m_imageLoader;
     String m_serviceType;
     String m_url;