summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger/MessageQueue.h
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-04-22 15:23:34 -0700
committerMathias Agopian <mathias@google.com>2009-04-24 16:30:38 -0700
commita3aa6c9aa96873a70e2ff3170218a275f503520e (patch)
tree67ce04dbb5e73d9ce96f93bef729d44754ead365 /libs/surfaceflinger/MessageQueue.h
parent6ead5d9f140529edfb744584fa5427b84b4dc13a (diff)
downloadframeworks_base-a3aa6c9aa96873a70e2ff3170218a275f503520e.zip
frameworks_base-a3aa6c9aa96873a70e2ff3170218a275f503520e.tar.gz
frameworks_base-a3aa6c9aa96873a70e2ff3170218a275f503520e.tar.bz2
Surfaces are now destroyed properly in SurfaceFlinger.
First, the window manager tells us when a surface is no longer needed. At this point, several things happen: - the surface is removed from the active/visible list - it is added to a purgatory list, where it waits for all clients to release their reference - it destroys all data/state that can be spared Later, when all clients are done, the remains of the Surface are disposed off: it is removed from the purgatory and destroyed. In particular its gralloc buffers are destroyed at that point (when we're sure nobody is using them anymore).
Diffstat (limited to 'libs/surfaceflinger/MessageQueue.h')
-rw-r--r--libs/surfaceflinger/MessageQueue.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/surfaceflinger/MessageQueue.h b/libs/surfaceflinger/MessageQueue.h
index d894fe2..c118897 100644
--- a/libs/surfaceflinger/MessageQueue.h
+++ b/libs/surfaceflinger/MessageQueue.h
@@ -148,8 +148,9 @@ public:
uint32_t what;
int32_t arg0;
- MessageBase(uint32_t what=0, int32_t arg0=0)
- : when(0), what(what), arg0(arg0) { }
+ MessageBase() : when(0), what(0), arg0(0) { }
+ MessageBase(uint32_t what, int32_t arg0=0)
+ : when(0), what(what), arg0(arg0) { }
// return true if message has a handler
virtual bool handler() { return false; }