diff options
author | Gaming4JC <g4jc@hyperbola.info> | 2020-01-05 12:15:22 -0500 |
---|---|---|
committer | Gaming4JC <g4jc@hyperbola.info> | 2020-01-26 15:50:26 -0500 |
commit | 49f597e7fb83dc96bfcf66073fe5bfbf994d71ba (patch) | |
tree | 49e9ceb75843222109b9a7e2c557f9a4d36576ff | |
parent | bf004bb63bcc9e2ea5f9417461ecb3042b27a2fa (diff) | |
download | UXP-49f597e7fb83dc96bfcf66073fe5bfbf994d71ba.tar UXP-49f597e7fb83dc96bfcf66073fe5bfbf994d71ba.tar.gz UXP-49f597e7fb83dc96bfcf66073fe5bfbf994d71ba.tar.lz UXP-49f597e7fb83dc96bfcf66073fe5bfbf994d71ba.tar.xz UXP-49f597e7fb83dc96bfcf66073fe5bfbf994d71ba.zip |
Bug 1332233 - prevent resource leak in CustomElementRegistry::Define.
Tag UXP Issue #1344
-rw-r--r-- | dom/base/CustomElementRegistry.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/dom/base/CustomElementRegistry.cpp b/dom/base/CustomElementRegistry.cpp index 34ad9549d..897f7df12 100644 --- a/dom/base/CustomElementRegistry.cpp +++ b/dom/base/CustomElementRegistry.cpp @@ -817,14 +817,6 @@ CustomElementRegistry::Define(const nsAString& aName, // Associate the definition with the custom element. nsCOMPtr<nsIAtom> localNameAtom(NS_Atomize(localName)); LifecycleCallbacks* callbacks = callbacksHolder.forget(); - CustomElementDefinition* definition = - new CustomElementDefinition(nameAtom, - localNameAtom, - &aFunctionConstructor, - Move(observedAttributes), - constructorPrototype, - callbacks, - 0 /* TODO dependent on HTML imports. Bug 877072 */); /** * 12. Add definition to this CustomElementRegistry. @@ -834,6 +826,15 @@ CustomElementRegistry::Define(const nsAString& aName, return; } + CustomElementDefinition* definition = + new CustomElementDefinition(nameAtom, + localNameAtom, + &aFunctionConstructor, + Move(observedAttributes), + constructorPrototype, + callbacks, + 0 /* TODO dependent on HTML imports. Bug 877072 */); + mCustomDefinitions.Put(nameAtom, definition); MOZ_ASSERT(mCustomDefinitions.Count() == mConstructors.count(), |