mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 07:15:46 +00:00
Fix one-time leak of atoms by converting to static atoms. b=230361 r=caillon sr=bryner
This commit is contained in:
parent
2d8ed15eb1
commit
f6c5136445
@ -119,19 +119,6 @@ inDOMView::inDOMView() :
|
||||
mShowWhitespaceNodes(PR_TRUE),
|
||||
mWhatToShow(nsIDOMNodeFilter::SHOW_ALL)
|
||||
{
|
||||
kAnonymousAtom = NS_NewAtom("anonymous");
|
||||
kElementNodeAtom = NS_NewAtom("ELEMENT_NODE");
|
||||
kAttributeNodeAtom = NS_NewAtom("ATTRIBUTE_NODE");
|
||||
kTextNodeAtom = NS_NewAtom("TEXT_NODE");
|
||||
kCDataSectionNodeAtom = NS_NewAtom("CDATA_SECTION_NODE");
|
||||
kEntityReferenceNodeAtom = NS_NewAtom("ENTITY_REFERENCE_NODE");
|
||||
kEntityNodeAtom = NS_NewAtom("ENTITY_NODE");
|
||||
kProcessingInstructionNodeAtom = NS_NewAtom("PROCESSING_INSTRUCTION_NODE");
|
||||
kCommentNodeAtom = NS_NewAtom("COMMENT_NODE");
|
||||
kDocumentNodeAtom = NS_NewAtom("DOCUMENT_NODE");
|
||||
kDocumentTypeNodeAtom = NS_NewAtom("DOCUMENT_TYPE_NODE");
|
||||
kDocumentFragmentNodeAtom = NS_NewAtom("DOCUMENT_FRAGMENT_NODE");
|
||||
kNotationNodeAtom = NS_NewAtom("NOTATION_NODE");
|
||||
}
|
||||
|
||||
inDOMView::~inDOMView()
|
||||
@ -139,6 +126,28 @@ inDOMView::~inDOMView()
|
||||
SetRootNode(nsnull);
|
||||
}
|
||||
|
||||
/* static */ const nsStaticAtom inDOMView::Atoms_info[] = {
|
||||
{"anonymous", &inDOMView::kAnonymousAtom},
|
||||
{"ELEMENT_NODE", &inDOMView::kElementNodeAtom},
|
||||
{"ATTRIBUTE_NODE", &inDOMView::kAttributeNodeAtom},
|
||||
{"TEXT_NODE", &inDOMView::kTextNodeAtom},
|
||||
{"CDATA_SECTION_NODE", &inDOMView::kCDataSectionNodeAtom},
|
||||
{"ENTITY_REFERENCE_NODE", &inDOMView::kEntityReferenceNodeAtom},
|
||||
{"ENTITY_NODE", &inDOMView::kEntityNodeAtom},
|
||||
{"PROCESSING_INSTRUCTION_NODE", &inDOMView::kProcessingInstructionNodeAtom},
|
||||
{"COMMENT_NODE", &inDOMView::kCommentNodeAtom},
|
||||
{"DOCUMENT_NODE", &inDOMView::kDocumentNodeAtom},
|
||||
{"DOCUMENT_TYPE_NODE", &inDOMView::kDocumentTypeNodeAtom},
|
||||
{"DOCUMENT_FRAGMENT_NODE", &inDOMView::kDocumentFragmentNodeAtom},
|
||||
{"NOTATION_NODE", &inDOMView::kNotationNodeAtom}
|
||||
};
|
||||
|
||||
/* static */ void
|
||||
inDOMView::InitAtoms()
|
||||
{
|
||||
NS_RegisterStaticAtoms(Atoms_info, NS_ARRAY_LENGTH(Atoms_info));
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// nsISupports
|
||||
|
||||
|
@ -49,6 +49,7 @@
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsVoidArray.h"
|
||||
#include "nsCOMArray.h"
|
||||
#include "nsStaticAtom.h"
|
||||
|
||||
class inDOMViewNode;
|
||||
|
||||
@ -67,6 +68,8 @@ public:
|
||||
// nsIDocumentObserver
|
||||
NS_DECL_NSIDOCUMENTOBSERVER
|
||||
|
||||
static void InitAtoms();
|
||||
|
||||
protected:
|
||||
static nsIAtom* kAnonymousAtom;
|
||||
static nsIAtom* kElementNodeAtom;
|
||||
@ -82,6 +85,8 @@ protected:
|
||||
static nsIAtom* kDocumentFragmentNodeAtom;
|
||||
static nsIAtom* kNotationNodeAtom;
|
||||
|
||||
static const nsStaticAtom Atoms_info[];
|
||||
|
||||
nsCOMPtr<nsITreeBoxObject> mTree;
|
||||
nsCOMPtr<nsITreeSelection> mSelection;
|
||||
nsCOMPtr<inIDOMUtils> mDOMUtils;
|
||||
|
Loading…
Reference in New Issue
Block a user