diff options
author | Mathias Agopian <mathias@google.com> | 2010-05-28 15:13:30 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2010-05-28 15:13:30 -0700 |
commit | cdfd5fe2c89a30a31f9de5a5481e8997f014a89b (patch) | |
tree | 0c5bbe8bed876618e46e057b44649f0715fcf56f /include/utils | |
parent | 009668bf8a51a3d6e8ee2827691c9b0285503ba1 (diff) | |
download | frameworks_base-cdfd5fe2c89a30a31f9de5a5481e8997f014a89b.zip frameworks_base-cdfd5fe2c89a30a31f9de5a5481e8997f014a89b.tar.gz frameworks_base-cdfd5fe2c89a30a31f9de5a5481e8997f014a89b.tar.bz2 |
Fix a typo in Singleton<>
it could cause the sLock field to be emitted several times
in different compilation unit. it also prevented to
have 2 Singleton<> in the same file.
Diffstat (limited to 'include/utils')
-rw-r--r-- | include/utils/Singleton.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/utils/Singleton.h b/include/utils/Singleton.h index bc7626a8..3b975b4 100644 --- a/include/utils/Singleton.h +++ b/include/utils/Singleton.h @@ -54,11 +54,13 @@ private: * (eg: <TYPE>.cpp) to create the static instance of Singleton<>'s attributes, * and avoid to have a copy of them in each compilation units Singleton<TYPE> * is used. + * NOTE: we use a version of Mutex ctor that takes a parameter, because + * for some unknown reason using the default ctor doesn't emit the variable! */ -#define ANDROID_SINGLETON_STATIC_INSTANCE(TYPE) \ - template class Singleton< TYPE >; \ - template< class TYPE > Mutex Singleton< TYPE >::sLock; \ +#define ANDROID_SINGLETON_STATIC_INSTANCE(TYPE) \ + template class Singleton< TYPE >; \ + template<> Mutex Singleton< TYPE >::sLock(Mutex::PRIVATE); \ template<> TYPE* Singleton< TYPE >::sInstance(0); |