summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger/Layer.h
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-06-19 17:00:27 -0700
committerMathias Agopian <mathias@google.com>2009-06-19 17:00:27 -0700
commit6edf5af578c1ab1fcd44b7c08ca371456e4b7430 (patch)
tree28ae8dec57019f5aac653b1a2d4df5cd061ee976 /libs/surfaceflinger/Layer.h
parentc8fb5b1979da4829e1486e6a1008c06c979b94b0 (diff)
downloadframeworks_base-6edf5af578c1ab1fcd44b7c08ca371456e4b7430.zip
frameworks_base-6edf5af578c1ab1fcd44b7c08ca371456e4b7430.tar.gz
frameworks_base-6edf5af578c1ab1fcd44b7c08ca371456e4b7430.tar.bz2
fix a memory corruption where a SF Client could be used after it's been destroyed
Diffstat (limited to 'libs/surfaceflinger/Layer.h')
-rw-r--r--libs/surfaceflinger/Layer.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/surfaceflinger/Layer.h b/libs/surfaceflinger/Layer.h
index e16d9f4..a19c171 100644
--- a/libs/surfaceflinger/Layer.h
+++ b/libs/surfaceflinger/Layer.h
@@ -58,7 +58,7 @@ public:
virtual uint32_t getTypeInfo() const { return typeInfo; }
Layer(SurfaceFlinger* flinger, DisplayID display,
- Client* c, int32_t i);
+ const sp<Client>& client, int32_t i);
virtual ~Layer();
@@ -66,8 +66,7 @@ public:
return frontBuffer().getPixelFormat();
}
- status_t setBuffers( Client* client,
- uint32_t w, uint32_t h,
+ status_t setBuffers( uint32_t w, uint32_t h,
PixelFormat format, uint32_t flags=0);
virtual void onDraw(const Region& clip) const;
@@ -105,6 +104,7 @@ private:
Region post(uint32_t* oldState, bool& recomputeVisibleRegions);
sp<SurfaceBuffer> peekBuffer();
void destroy();
+ void scheduleBroadcast();
class SurfaceLayer : public LayerBaseClient::Surface