diff options
author | Mathias Agopian <mathias@google.com> | 2009-04-17 14:15:18 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-04-24 15:00:41 -0700 |
commit | 2b1927f686eaec23a5798966b96aadaee3e2eb85 (patch) | |
tree | 7ae57d36ad4b8665c0761e264e84ce8fe9c68c5f | |
parent | f670127afccf156681db8a144e49cecb22d744e1 (diff) | |
download | frameworks_base-2b1927f686eaec23a5798966b96aadaee3e2eb85.zip frameworks_base-2b1927f686eaec23a5798966b96aadaee3e2eb85.tar.gz frameworks_base-2b1927f686eaec23a5798966b96aadaee3e2eb85.tar.bz2 |
Squashed commit of the following:
commit e5c24638f98162c3b75b4c67a16b510d38e31341
Author: Mathias Agopian <mathias@google.com>
Date: Fri Apr 17 14:09:03 2009 -0700
oops forgot this file.
commit 282642632d0cb12882eecf42e0fdfb2343275de1
Author: Mathias Agopian <mathias@google.com>
Date: Fri Apr 17 14:07:32 2009 -0700
use a helper macro for creating Singleton<>'s static attributes instances.
-rw-r--r-- | include/utils/Singleton.h | 12 | ||||
-rw-r--r-- | libs/surfaceflinger/BufferAllocator.cpp | 3 | ||||
-rw-r--r-- | libs/ui/BufferMapper.cpp | 3 | ||||
-rw-r--r-- | libs/ui/Surface.cpp | 3 |
4 files changed, 15 insertions, 6 deletions
diff --git a/include/utils/Singleton.h b/include/utils/Singleton.h index ee07df1..2f7c7c2 100644 --- a/include/utils/Singleton.h +++ b/include/utils/Singleton.h @@ -49,6 +49,18 @@ private: static TYPE* sInstance; }; +/* + * use ANDROID_SINGLETON_STATIC_INSTANCE(TYPE) in your implementation file + * (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. + */ + +#define ANDROID_SINGLETON_STATIC_INSTANCE(TYPE) \ + template< class TYPE > Mutex Singleton< TYPE >::sLock; \ + template<> TYPE* Singleton< TYPE >::sInstance(0); + + // --------------------------------------------------------------------------- }; // namespace android diff --git a/libs/surfaceflinger/BufferAllocator.cpp b/libs/surfaceflinger/BufferAllocator.cpp index 28fe810..fec7c87 100644 --- a/libs/surfaceflinger/BufferAllocator.cpp +++ b/libs/surfaceflinger/BufferAllocator.cpp @@ -34,8 +34,7 @@ namespace android { // --------------------------------------------------------------------------- -template<class BufferAllocator> Mutex Singleton<BufferAllocator>::sLock; -template<> BufferAllocator* Singleton<BufferAllocator>::sInstance(0); +ANDROID_SINGLETON_STATIC_INSTANCE( BufferAllocator ) Mutex BufferAllocator::sLock; KeyedVector<buffer_handle_t, BufferAllocator::alloc_rec_t> BufferAllocator::sAllocList; diff --git a/libs/ui/BufferMapper.cpp b/libs/ui/BufferMapper.cpp index e6ca239..85a029b 100644 --- a/libs/ui/BufferMapper.cpp +++ b/libs/ui/BufferMapper.cpp @@ -44,8 +44,7 @@ namespace android { // --------------------------------------------------------------------------- -template<class BufferMapper> Mutex Singleton<BufferMapper>::sLock; -template<> BufferMapper* Singleton<BufferMapper>::sInstance(0); +ANDROID_SINGLETON_STATIC_INSTANCE( BufferMapper ) BufferMapper::BufferMapper() : mAllocMod(0) diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp index 47880f5..fb105b3 100644 --- a/libs/ui/Surface.cpp +++ b/libs/ui/Surface.cpp @@ -50,8 +50,7 @@ namespace android { // SurfaceBuffer // ============================================================================ -template<class SurfaceBuffer> Mutex Singleton<SurfaceBuffer>::sLock; -template<> SurfaceBuffer* Singleton<SurfaceBuffer>::sInstance(0); +ANDROID_SINGLETON_STATIC_INSTANCE( SurfaceBuffer ) SurfaceBuffer::SurfaceBuffer() : BASE(), handle(0), mOwner(false) |