diff options
| author | 2011-07-30 14:33:49 -0700 | |
|---|---|---|
| committer | 2011-07-30 14:38:20 -0700 | |
| commit | dbe6486ca151d0eb1950be0aae347f0eb8ed3442 (patch) | |
| tree | 10375a315441a9d1739d3991f20ed278a7737080 /services/surfaceflinger/Layer.cpp | |
| parent | 8d944d254bd8054e9926ac651a7867083d36752d (diff) | |
SurfaceFlinger: abandon Layer SurfaceTextures
This change makes the Layer::onRemoved method call
SurfaceTextures::abandon on the layer's SurfaceTexture. This will cause
all client-initiated operations on the SurfaceTexture to fail. In
particular, this will result in an error on the client side, rather than
a deadlock when removing a layer that used a SurfaceTexture in
synchronous mode.
Change-Id: I14014d00369f29560a21b606831edee432bb8867
Bug: 5020874
Diffstat (limited to 'services/surfaceflinger/Layer.cpp')
| -rw-r--r-- | services/surfaceflinger/Layer.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 63062cc037..886bb2afeb 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -105,6 +105,7 @@ void Layer::onFrameQueued() { // in the purgatory list void Layer::onRemoved() { + mSurfaceTexture->abandon(); } sp<ISurface> Layer::createSurface() |