Bug 804649. Create a CommentNode header. r=peterv
authorBoris Zbarsky <bzbarsky@mit.edu>
Mon, 05 Nov 2012 11:58:04 -0500
changeset 112329 e4aa33c6ae53c602e1dc3df46a690a8b25456f7b
parent 112328 da96e260d2dd3565e871966b6c23ae9378eba58d
child 112330 cf7582f6cde94b531148c75c933c4dcf91eebb95
push id23812
push useremorley@mozilla.com
push dateTue, 06 Nov 2012 14:01:34 +0000
treeherdermozilla-central@f4aeed115e54 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerspeterv
bugs804649
milestone19.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 804649. Create a CommentNode header. r=peterv
content/base/src/Comment.cpp
content/base/src/Comment.h
content/base/src/Makefile.in
content/base/src/nsCommentNode.cpp
rename from content/base/src/nsCommentNode.cpp
rename to content/base/src/Comment.cpp
--- a/content/base/src/nsCommentNode.cpp
+++ b/content/base/src/Comment.cpp
@@ -2,132 +2,102 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*
  * Implementations of DOM Core's nsIDOMComment node.
  */
 
-#include "nsIDOMComment.h"
-#include "nsGenericDOMDataNode.h"
-
 #include "nsCOMPtr.h"
 #include "nsGenericElement.h" // DOMCI_NODE_DATA
-
-class nsCommentNode : public nsGenericDOMDataNode,
-                      public nsIDOMComment
-{
-public:
-  nsCommentNode(already_AddRefed<nsINodeInfo> aNodeInfo);
-  virtual ~nsCommentNode();
-
-  // nsISupports
-  NS_DECL_ISUPPORTS_INHERITED
-
-  // nsIDOMNode
-  NS_FORWARD_NSIDOMNODE_TO_NSINODE
-
-  // nsIDOMCharacterData
-  NS_FORWARD_NSIDOMCHARACTERDATA(nsGenericDOMDataNode::)
+#include "Comment.h"
 
-  // nsIDOMComment
-  // Empty interface
-
-  // nsINode
-  virtual bool IsNodeOfType(uint32_t aFlags) const;
-
-  virtual nsGenericDOMDataNode* CloneDataNode(nsINodeInfo *aNodeInfo,
-                                              bool aCloneText) const;
-
-  virtual nsXPCClassInfo* GetClassInfo();
+using namespace mozilla;
+using namespace dom;
 
-  virtual nsIDOMNode* AsDOMNode() { return this; }
-#ifdef DEBUG
-  virtual void List(FILE* out, int32_t aIndent) const;
-  virtual void DumpContent(FILE* out = stdout, int32_t aIndent = 0,
-                           bool aDumpAll = true) const
-  {
-    return;
-  }
-#endif
-};
+// DOMCI_NODE_DATA needs to be outside our namespaces
+DOMCI_NODE_DATA(Comment, Comment)
 
 nsresult
 NS_NewCommentNode(nsIContent** aInstancePtrResult,
                   nsNodeInfoManager *aNodeInfoManager)
 {
   NS_PRECONDITION(aNodeInfoManager, "Missing nodeinfo manager");
 
   *aInstancePtrResult = nullptr;
 
   nsCOMPtr<nsINodeInfo> ni = aNodeInfoManager->GetCommentNodeInfo();
   NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
 
-  nsCommentNode *instance = new nsCommentNode(ni.forget());
+  Comment *instance = new Comment(ni.forget());
   if (!instance) {
     return NS_ERROR_OUT_OF_MEMORY;
   }
 
   NS_ADDREF(*aInstancePtrResult = instance);
 
   return NS_OK;
 }
 
-nsCommentNode::nsCommentNode(already_AddRefed<nsINodeInfo> aNodeInfo)
+namespace mozilla {
+namespace dom {
+
+Comment::Comment(already_AddRefed<nsINodeInfo> aNodeInfo)
   : nsGenericDOMDataNode(aNodeInfo)
 {
   NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::COMMENT_NODE,
                     "Bad NodeType in aNodeInfo");
 }
 
-nsCommentNode::~nsCommentNode()
+Comment::~Comment()
 {
 }
 
-DOMCI_NODE_DATA(Comment, nsCommentNode)
-
-// QueryInterface implementation for nsCommentNode
-NS_INTERFACE_TABLE_HEAD(nsCommentNode)
-  NS_NODE_INTERFACE_TABLE3(nsCommentNode, nsIDOMNode, nsIDOMCharacterData,
+// QueryInterface implementation for Comment
+NS_INTERFACE_TABLE_HEAD(Comment)
+  NS_NODE_INTERFACE_TABLE3(Comment, nsIDOMNode, nsIDOMCharacterData,
                            nsIDOMComment)
   NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(Comment)
 NS_INTERFACE_MAP_END_INHERITING(nsGenericDOMDataNode)
 
 
-NS_IMPL_ADDREF_INHERITED(nsCommentNode, nsGenericDOMDataNode)
-NS_IMPL_RELEASE_INHERITED(nsCommentNode, nsGenericDOMDataNode)
+NS_IMPL_ADDREF_INHERITED(Comment, nsGenericDOMDataNode)
+NS_IMPL_RELEASE_INHERITED(Comment, nsGenericDOMDataNode)
 
 
 bool
-nsCommentNode::IsNodeOfType(uint32_t aFlags) const
+Comment::IsNodeOfType(uint32_t aFlags) const
 {
   return !(aFlags & ~(eCONTENT | eCOMMENT | eDATA_NODE));
 }
 
 nsGenericDOMDataNode*
-nsCommentNode::CloneDataNode(nsINodeInfo *aNodeInfo, bool aCloneText) const
+Comment::CloneDataNode(nsINodeInfo *aNodeInfo, bool aCloneText) const
 {
   nsCOMPtr<nsINodeInfo> ni = aNodeInfo;
-  nsCommentNode *it = new nsCommentNode(ni.forget());
+  Comment *it = new Comment(ni.forget());
   if (it && aCloneText) {
     it->mText = mText;
   }
 
   return it;
 }
 
 #ifdef DEBUG
 void
-nsCommentNode::List(FILE* out, int32_t aIndent) const
+Comment::List(FILE* out, int32_t aIndent) const
 {
   int32_t indx;
   for (indx = aIndent; --indx >= 0; ) fputs("  ", out);
 
   fprintf(out, "Comment@%p refcount=%d<!--", (void*)this, mRefCnt.get());
 
   nsAutoString tmp;
   ToCString(tmp, 0, mText.GetLength());
   fputs(NS_LossyConvertUTF16toASCII(tmp).get(), out);
 
   fputs("-->\n", out);
 }
 #endif
+
+} // namespace dom
+} // namespace mozilla
copy from content/base/src/nsCommentNode.cpp
copy to content/base/src/Comment.h
--- a/content/base/src/nsCommentNode.cpp
+++ b/content/base/src/Comment.h
@@ -1,29 +1,25 @@
 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-/*
- * Implementations of DOM Core's nsIDOMComment node.
- */
-
 #include "nsIDOMComment.h"
 #include "nsGenericDOMDataNode.h"
 
-#include "nsCOMPtr.h"
-#include "nsGenericElement.h" // DOMCI_NODE_DATA
+namespace mozilla {
+namespace dom {
 
-class nsCommentNode : public nsGenericDOMDataNode,
-                      public nsIDOMComment
+class Comment : public nsGenericDOMDataNode,
+                public nsIDOMComment
 {
 public:
-  nsCommentNode(already_AddRefed<nsINodeInfo> aNodeInfo);
-  virtual ~nsCommentNode();
+  Comment(already_AddRefed<nsINodeInfo> aNodeInfo);
+  virtual ~Comment();
 
   // nsISupports
   NS_DECL_ISUPPORTS_INHERITED
 
   // nsIDOMNode
   NS_FORWARD_NSIDOMNODE_TO_NSINODE
 
   // nsIDOMCharacterData
@@ -46,88 +42,11 @@ public:
   virtual void DumpContent(FILE* out = stdout, int32_t aIndent = 0,
                            bool aDumpAll = true) const
   {
     return;
   }
 #endif
 };
 
-nsresult
-NS_NewCommentNode(nsIContent** aInstancePtrResult,
-                  nsNodeInfoManager *aNodeInfoManager)
-{
-  NS_PRECONDITION(aNodeInfoManager, "Missing nodeinfo manager");
-
-  *aInstancePtrResult = nullptr;
-
-  nsCOMPtr<nsINodeInfo> ni = aNodeInfoManager->GetCommentNodeInfo();
-  NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
-
-  nsCommentNode *instance = new nsCommentNode(ni.forget());
-  if (!instance) {
-    return NS_ERROR_OUT_OF_MEMORY;
-  }
-
-  NS_ADDREF(*aInstancePtrResult = instance);
-
-  return NS_OK;
-}
-
-nsCommentNode::nsCommentNode(already_AddRefed<nsINodeInfo> aNodeInfo)
-  : nsGenericDOMDataNode(aNodeInfo)
-{
-  NS_ABORT_IF_FALSE(mNodeInfo->NodeType() == nsIDOMNode::COMMENT_NODE,
-                    "Bad NodeType in aNodeInfo");
-}
-
-nsCommentNode::~nsCommentNode()
-{
-}
-
-DOMCI_NODE_DATA(Comment, nsCommentNode)
+} // namespace dom
+} // namespace mozilla
 
-// QueryInterface implementation for nsCommentNode
-NS_INTERFACE_TABLE_HEAD(nsCommentNode)
-  NS_NODE_INTERFACE_TABLE3(nsCommentNode, nsIDOMNode, nsIDOMCharacterData,
-                           nsIDOMComment)
-  NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(Comment)
-NS_INTERFACE_MAP_END_INHERITING(nsGenericDOMDataNode)
-
-
-NS_IMPL_ADDREF_INHERITED(nsCommentNode, nsGenericDOMDataNode)
-NS_IMPL_RELEASE_INHERITED(nsCommentNode, nsGenericDOMDataNode)
-
-
-bool
-nsCommentNode::IsNodeOfType(uint32_t aFlags) const
-{
-  return !(aFlags & ~(eCONTENT | eCOMMENT | eDATA_NODE));
-}
-
-nsGenericDOMDataNode*
-nsCommentNode::CloneDataNode(nsINodeInfo *aNodeInfo, bool aCloneText) const
-{
-  nsCOMPtr<nsINodeInfo> ni = aNodeInfo;
-  nsCommentNode *it = new nsCommentNode(ni.forget());
-  if (it && aCloneText) {
-    it->mText = mText;
-  }
-
-  return it;
-}
-
-#ifdef DEBUG
-void
-nsCommentNode::List(FILE* out, int32_t aIndent) const
-{
-  int32_t indx;
-  for (indx = aIndent; --indx >= 0; ) fputs("  ", out);
-
-  fprintf(out, "Comment@%p refcount=%d<!--", (void*)this, mRefCnt.get());
-
-  nsAutoString tmp;
-  ToCString(tmp, 0, mText.GetLength());
-  fputs(NS_LossyConvertUTF16toASCII(tmp).get(), out);
-
-  fputs("-->\n", out);
-}
-#endif
--- a/content/base/src/Makefile.in
+++ b/content/base/src/Makefile.in
@@ -41,30 +41,31 @@ EXPORTS		= \
 		nsMappedAttributeElement.h \
 		nsStyledElement.h \
     nsSandboxFlags.h \
 		$(NULL)
 
 EXPORTS_NAMESPACES = mozilla/dom
 
 EXPORTS_mozilla/dom = \
+  Comment.h \
   DOMImplementation.h \
   Link.h \
   $(NULL)
 
 CPPSRCS		= \
+		Comment.cpp \
 		DirectionalityUtils.cpp \
 		DOMImplementation.cpp \
 		nsAtomListUtils.cpp \
 		nsAttrAndChildArray.cpp \
 		nsAttrValue.cpp \
 		nsAttrValueOrString.cpp \
 		nsCCUncollectableMarker.cpp \
 		nsChannelPolicy.cpp \
-		nsCommentNode.cpp \
 		nsContentAreaDragDrop.cpp \
 		nsContentIterator.cpp \
 		nsContentList.cpp \
 		nsContentPolicy.cpp \
 		nsContentSink.cpp \
 		nsContentUtils.cpp \
 		nsCopySupport.cpp \
 		nsCrossSiteListenerProxy.cpp \