fix a rookie mistake causing Singleton<> to be a "multiton". Also improve the BufferMapper's debugging, but turn it off.
Squashed commit of the following:
commit 04e9cae7f806bd65f2cfe35c011b47a36773bbe5
Author: Mathias Agopian <mathias@google.com>
Date: Wed Apr 15 18:30:30 2009 -0700
fix and improve BufferMapper's tracking of mapped buffers.
commit 1a8deaed15811092b2349cc3c40cafb5f722046c
Author: Mathias Agopian <mathias@google.com>
Date: Wed Apr 15 00:52:02 2009 -0700
fix some bugs with the Singleton<> class. untested.
commit ed01cc06ad70cf640ce1258f01189cb1a96fd3a8
Author: Mathias Agopian <mathias@google.com>
Date: Tue Apr 14 19:29:25 2009 -0700
some work to debug the Singleton<> template.
diff --git a/include/ui/BufferMapper.h b/include/ui/BufferMapper.h
index 9e5c5d7..ff90033 100644
--- a/include/ui/BufferMapper.h
+++ b/include/ui/BufferMapper.h
@@ -40,8 +40,8 @@
{
public:
static inline BufferMapper& get() { return getInstance(); }
- status_t map(buffer_handle_t handle, void** addr);
- status_t unmap(buffer_handle_t handle);
+ status_t map(buffer_handle_t handle, void** addr, const void* id);
+ status_t unmap(buffer_handle_t handle, const void* id);
status_t lock(buffer_handle_t handle, int usage, const Rect& bounds);
status_t unlock(buffer_handle_t handle);
@@ -54,13 +54,13 @@
mutable Mutex mLock;
gralloc_module_t const *mAllocMod;
+ void logMapLocked(buffer_handle_t handle, const void* id);
+ void logUnmapLocked(buffer_handle_t handle, const void* id);
struct map_info_t {
- int count;
- KeyedVector<CallStack, int> callstacks;
+ const void* id;
+ CallStack stack;
};
- KeyedVector<buffer_handle_t, map_info_t> mMapInfo;
- void logMapLocked(buffer_handle_t handle);
- void logUnmapLocked(buffer_handle_t handle);
+ KeyedVector<buffer_handle_t, Vector<map_info_t> > mMapInfo;
};
// ---------------------------------------------------------------------------