author | Andrew McCreight <continuation@gmail.com> |
Wed, 20 Jul 2016 15:18:59 -0700 | |
changeset 305938 | bf7983226fbee0753076dee69ae308e29560324e |
parent 305937 | ea6df4951b5694d9f583de132f3926d30c10bb5a |
child 305939 | 257f417d40666e220babef29065df87d9c711e9d |
push id | 30474 |
push user | cbook@mozilla.com |
push date | Thu, 21 Jul 2016 14:25:10 +0000 |
treeherder | mozilla-central@6b180266ac16 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bkelly |
bugs | 1287166 |
milestone | 50.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
|
--- a/dom/base/NodeIterator.cpp +++ b/dom/base/NodeIterator.cpp @@ -176,17 +176,18 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION( NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDOMNodeIterator) NS_INTERFACE_MAP_END NS_IMPL_CYCLE_COLLECTING_ADDREF(NodeIterator) NS_IMPL_CYCLE_COLLECTING_RELEASE(NodeIterator) NS_IMETHODIMP NodeIterator::GetRoot(nsIDOMNode * *aRoot) { - NS_ADDREF(*aRoot = Root()->AsDOMNode()); + nsCOMPtr<nsIDOMNode> root = Root()->AsDOMNode(); + root.forget(aRoot); return NS_OK; } NS_IMETHODIMP NodeIterator::GetWhatToShow(uint32_t *aWhatToShow) { *aWhatToShow = WhatToShow(); return NS_OK; }
--- a/dom/base/nsGenericDOMDataNode.h +++ b/dom/base/nsGenericDOMDataNode.h @@ -167,23 +167,23 @@ public: NS_IMETHOD WalkContentStyleRules(nsRuleWalker* aRuleWalker) override; NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const; virtual nsChangeHint GetAttributeChangeHint(const nsIAtom* aAttribute, int32_t aModType) const; virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult) const override { - *aResult = CloneDataNode(aNodeInfo, true); + nsCOMPtr<nsINode> result = CloneDataNode(aNodeInfo, true); + result.forget(aResult); + if (!*aResult) { return NS_ERROR_OUT_OF_MEMORY; } - NS_ADDREF(*aResult); - return NS_OK; } nsresult SplitData(uint32_t aOffset, nsIContent** aReturn, bool aCloneAfterOriginal = true); // WebIDL API // Our XPCOM GetData is just fine for WebIDL
--- a/dom/base/nsNodeInfoManager.cpp +++ b/dom/base/nsNodeInfoManager.cpp @@ -269,19 +269,18 @@ nsNodeInfoManager::GetNodeInfo(const nsA } #endif NodeInfo::NodeInfoInner tmpKey(aName, aPrefix, aNamespaceID, aNodeType); void *node = PL_HashTableLookup(mNodeInfoHash, &tmpKey); if (node) { - NodeInfo* nodeInfo = static_cast<NodeInfo *>(node); - - NS_ADDREF(*aNodeInfo = nodeInfo); + RefPtr<NodeInfo> nodeInfo = static_cast<NodeInfo*>(node); + nodeInfo.forget(aNodeInfo); return NS_OK; } nsCOMPtr<nsIAtom> nameAtom = NS_Atomize(aName); NS_ENSURE_TRUE(nameAtom, NS_ERROR_OUT_OF_MEMORY); RefPtr<NodeInfo> newNodeInfo =