From 51170c6db88a28646fb0b9679890505b841d38bf Mon Sep 17 00:00:00 2001 From: Bobby Holley Date: Tue, 3 Apr 2018 17:59:03 -0700 Subject: [PATCH] Bug 1451421 - Add an atom overload for namespace registration. r=bz MozReview-Commit-ID: 3CiyFImX8UO --- dom/base/nsNameSpaceManager.cpp | 15 +++++++++++---- dom/base/nsNameSpaceManager.h | 2 ++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/dom/base/nsNameSpaceManager.cpp b/dom/base/nsNameSpaceManager.cpp index 0f559c2efdca..727cdfda7b69 100644 --- a/dom/base/nsNameSpaceManager.cpp +++ b/dom/base/nsNameSpaceManager.cpp @@ -94,14 +94,21 @@ nsresult nsNameSpaceManager::RegisterNameSpace(const nsAString& aURI, int32_t& aNameSpaceID) { - if (aURI.IsEmpty()) { - aNameSpaceID = kNameSpaceID_None; // xmlns="", see bug 75700 for details + RefPtr atom = NS_Atomize(aURI); + return RegisterNameSpace(atom.forget(), aNameSpaceID); +} +nsresult +nsNameSpaceManager::RegisterNameSpace(already_AddRefed aURI, + int32_t& aNameSpaceID) +{ + RefPtr atom = aURI; + nsresult rv = NS_OK; + if (atom == nsGkAtoms::_empty) { + aNameSpaceID = kNameSpaceID_None; // xmlns="", see bug 75700 for details return NS_OK; } - RefPtr atom = NS_Atomize(aURI); - nsresult rv = NS_OK; if (!mURIToIDTable.Get(atom, &aNameSpaceID)) { aNameSpaceID = mURIArray.Length(); diff --git a/dom/base/nsNameSpaceManager.h b/dom/base/nsNameSpaceManager.h index 6a4100bebaa8..5c9027839b42 100644 --- a/dom/base/nsNameSpaceManager.h +++ b/dom/base/nsNameSpaceManager.h @@ -38,6 +38,8 @@ public: NS_DECL_NSIOBSERVER virtual nsresult RegisterNameSpace(const nsAString& aURI, int32_t& aNameSpaceID); + nsresult RegisterNameSpace(already_AddRefed aURI, + int32_t& aNameSpaceID); virtual nsresult GetNameSpaceURI(int32_t aNameSpaceID, nsAString& aURI);