From e8c627b9d1f6086018ebc197ef7fa1842e9dfba9 Mon Sep 17 00:00:00 2001 From: Andrew McCreight Date: Thu, 10 Apr 2014 07:05:20 -0700 Subject: [PATCH] Bug 993194, part 4 - Make nsNodeInfoManager::mBindingManager into an nsRefPtr. r=smaug --- content/base/src/nsNodeInfoManager.cpp | 10 +++------- content/base/src/nsNodeInfoManager.h | 5 ++--- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/content/base/src/nsNodeInfoManager.cpp b/content/base/src/nsNodeInfoManager.cpp index f1005fbd5196..7b424e5f5cf9 100644 --- a/content/base/src/nsNodeInfoManager.cpp +++ b/content/base/src/nsNodeInfoManager.cpp @@ -116,8 +116,7 @@ nsNodeInfoManager::nsNodeInfoManager() mPrincipal(nullptr), mTextNodeInfo(nullptr), mCommentNodeInfo(nullptr), - mDocumentNodeInfo(nullptr), - mBindingManager(nullptr) + mDocumentNodeInfo(nullptr) { nsLayoutStatics::AddRef(); @@ -144,7 +143,7 @@ nsNodeInfoManager::~nsNodeInfoManager() // Note: mPrincipal may be null here if we never got inited correctly NS_IF_RELEASE(mPrincipal); - NS_IF_RELEASE(mBindingManager); + mBindingManager = nullptr; #ifdef PR_LOGGING if (gNodeInfoManagerLeakPRLog) @@ -167,7 +166,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsNodeInfoManager) if (tmp->mNonDocumentNodeInfos) { NS_IMPL_CYCLE_COLLECTION_TRAVERSE_RAWPTR(mDocument) } - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_RAWPTR(mBindingManager) + NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mBindingManager) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(nsNodeInfoManager, AddRef) @@ -186,9 +185,6 @@ nsNodeInfoManager::Init(nsIDocument *aDocument) if (aDocument) { mBindingManager = new nsBindingManager(aDocument); - NS_ENSURE_TRUE(mBindingManager, NS_ERROR_OUT_OF_MEMORY); - - NS_ADDREF(mBindingManager); } mDefaultPrincipal = mPrincipal; diff --git a/content/base/src/nsNodeInfoManager.h b/content/base/src/nsNodeInfoManager.h index 5253e44b98c7..1fddd9394418 100644 --- a/content/base/src/nsNodeInfoManager.h +++ b/content/base/src/nsNodeInfoManager.h @@ -12,6 +12,7 @@ #include "mozilla/Attributes.h" // for MOZ_FINAL #include "nsCOMPtr.h" // for member +#include "nsAutoPtr.h" // for nsRefPtr #include "nsCycleCollectionParticipant.h" // for NS_DECL_CYCLE_* #include "plhash.h" // for typedef PLHashNumber @@ -132,9 +133,7 @@ private: nsINodeInfo *mTextNodeInfo; // WEAK to avoid circular ownership nsINodeInfo *mCommentNodeInfo; // WEAK to avoid circular ownership nsINodeInfo *mDocumentNodeInfo; // WEAK to avoid circular ownership - nsBindingManager* mBindingManager; // STRONG, but not nsCOMPtr to avoid - // include hell while inlining - // GetBindingManager(). + nsRefPtr mBindingManager; }; #endif /* nsNodeInfoManager_h___ */