summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jamie Gennis <jgennis@google.com> 2011-07-30 14:33:49 -0700
committer Jamie Gennis <jgennis@google.com> 2011-07-30 14:38:20 -0700
commitdbe6486ca151d0eb1950be0aae347f0eb8ed3442 (patch)
tree10375a315441a9d1739d3991f20ed278a7737080
parent8d944d254bd8054e9926ac651a7867083d36752d (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
-rw-r--r--services/surfaceflinger/Layer.cpp1
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()