diff options
author | Mathias Agopian <mathias@google.com> | 2009-06-19 17:00:27 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-06-19 17:00:27 -0700 |
commit | 6edf5af578c1ab1fcd44b7c08ca371456e4b7430 (patch) | |
tree | 28ae8dec57019f5aac653b1a2d4df5cd061ee976 /libs/surfaceflinger/Layer.h | |
parent | c8fb5b1979da4829e1486e6a1008c06c979b94b0 (diff) | |
download | frameworks_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.h | 6 |
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 |