From c4f3d9687f54df1c01a07b1787936a2d0a0143d0 Mon Sep 17 00:00:00 2001 From: Trevor Saunders Date: Thu, 30 May 2013 17:20:02 -0400 Subject: [PATCH] bug 877850 - fix static constructors in xpcom/ r=jlebar --- xpcom/glue/nsEnumeratorUtils.cpp | 8 ++------ xpcom/io/nsUnicharInputStream.cpp | 4 +--- xpcom/io/nsUnicharInputStream.h | 3 --- xpcom/threads/nsThread.cpp | 3 +-- xpcom/threads/nsThreadManager.cpp | 4 ---- xpcom/threads/nsThreadManager.h | 3 +-- 6 files changed, 5 insertions(+), 20 deletions(-) diff --git a/xpcom/glue/nsEnumeratorUtils.cpp b/xpcom/glue/nsEnumeratorUtils.cpp index 06d85ede120..1888e9b576a 100644 --- a/xpcom/glue/nsEnumeratorUtils.cpp +++ b/xpcom/glue/nsEnumeratorUtils.cpp @@ -29,11 +29,9 @@ public: NS_IMETHOD GetNext(nsAString& aResult); static EmptyEnumeratorImpl* GetInstance() { - return const_cast(&kInstance); + static const EmptyEnumeratorImpl kInstance; + return const_cast(&kInstance); } - -private: - static const EmptyEnumeratorImpl kInstance; }; // nsISupports interface @@ -78,8 +76,6 @@ NS_IMETHODIMP EmptyEnumeratorImpl::GetNext(nsAString& aResult) return NS_ERROR_UNEXPECTED; } -const EmptyEnumeratorImpl EmptyEnumeratorImpl::kInstance; - nsresult NS_NewEmptyEnumerator(nsISimpleEnumerator** aResult) { diff --git a/xpcom/io/nsUnicharInputStream.cpp b/xpcom/io/nsUnicharInputStream.cpp index 3fc048fc889..a1e76a4c37a 100644 --- a/xpcom/io/nsUnicharInputStream.cpp +++ b/xpcom/io/nsUnicharInputStream.cpp @@ -429,8 +429,6 @@ nsSimpleUnicharStreamFactory::CreateInstanceFromUTF8Stream(nsIInputStream* aStre nsSimpleUnicharStreamFactory* nsSimpleUnicharStreamFactory::GetInstance() { + static const nsSimpleUnicharStreamFactory kInstance; return const_cast(&kInstance); } - -const nsSimpleUnicharStreamFactory -nsSimpleUnicharStreamFactory::kInstance; diff --git a/xpcom/io/nsUnicharInputStream.h b/xpcom/io/nsUnicharInputStream.h index 6029128c079..9b8e6c004bc 100644 --- a/xpcom/io/nsUnicharInputStream.h +++ b/xpcom/io/nsUnicharInputStream.h @@ -24,9 +24,6 @@ public: NS_DECL_NSISIMPLEUNICHARSTREAMFACTORY static nsSimpleUnicharStreamFactory* GetInstance(); - -private: - static const nsSimpleUnicharStreamFactory kInstance; }; #endif // nsUnicharInputStream_h__ diff --git a/xpcom/threads/nsThread.cpp b/xpcom/threads/nsThread.cpp index 702a0df5ac7..75ce11cf5e6 100644 --- a/xpcom/threads/nsThread.cpp +++ b/xpcom/threads/nsThread.cpp @@ -85,8 +85,6 @@ public: nsThreadClassInfo() {} }; -static nsThreadClassInfo sThreadClassInfo; - NS_IMETHODIMP_(nsrefcnt) nsThreadClassInfo::AddRef() { return 2; } NS_IMETHODIMP_(nsrefcnt) nsThreadClassInfo::Release() { return 1; } NS_IMPL_QUERY_INTERFACE1(nsThreadClassInfo, nsIClassInfo) @@ -156,6 +154,7 @@ NS_INTERFACE_MAP_BEGIN(nsThread) NS_INTERFACE_MAP_ENTRY(nsISupportsPriority) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIThread) if (aIID.Equals(NS_GET_IID(nsIClassInfo))) { + static nsThreadClassInfo sThreadClassInfo; foundInterface = static_cast(&sThreadClassInfo); } else NS_INTERFACE_MAP_END diff --git a/xpcom/threads/nsThreadManager.cpp b/xpcom/threads/nsThreadManager.cpp index 0899bd00021..fe70a28c258 100644 --- a/xpcom/threads/nsThreadManager.cpp +++ b/xpcom/threads/nsThreadManager.cpp @@ -39,10 +39,6 @@ AppendAndRemoveThread(PRThread *key, nsRefPtr &thread, void *arg) return PL_DHASH_REMOVE; } -//----------------------------------------------------------------------------- - -nsThreadManager nsThreadManager::sInstance; - // statically allocated instance NS_IMETHODIMP_(nsrefcnt) nsThreadManager::AddRef() { return 2; } NS_IMETHODIMP_(nsrefcnt) nsThreadManager::Release() { return 1; } diff --git a/xpcom/threads/nsThreadManager.h b/xpcom/threads/nsThreadManager.h index 8e87d68add8..64d82cb9c14 100644 --- a/xpcom/threads/nsThreadManager.h +++ b/xpcom/threads/nsThreadManager.h @@ -21,6 +21,7 @@ public: NS_DECL_NSITHREADMANAGER static nsThreadManager *get() { + static nsThreadManager sInstance; return &sInstance; } @@ -60,8 +61,6 @@ private: , mHighestNumberOfThreads(1) { } - static nsThreadManager sInstance; - nsRefPtrHashtable, nsThread> mThreadsByPRThread; unsigned mCurThreadIndex; // thread-local-storage index nsRefPtr mMainThread;