summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
author Jeff Brown <jeffbrown@google.com> 2012-08-15 01:08:54 -0700
committer Jeff Brown <jeffbrown@google.com> 2012-08-15 01:16:16 -0700
commit01eb979243a57bd33f8389aeeade8024dd0258c0 (patch)
treedb1c8e4f388e2d904ae311a5ddca8e416fba9195 /services/surfaceflinger/SurfaceFlinger.cpp
parentea599dfff03b45903dae3288274c31cb24fd483f (diff)
Fix layer removal transaction.
Layers were not properly being removed because we were setting the wrong transaction type flag at the time of removal. When layers are removed, we must use eDisplayTransactionNeeded, not eTransactionNeeded, to ensure that the mLayersRemoved flag is checked and the appropriate cleanup occurs. Bug: 6970310 Change-Id: Id4b2897a34d4ac00aa0f92349c0ec6db95c1aaf7
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 3a802ff802..97b02ce600 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1406,7 +1406,7 @@ status_t SurfaceFlinger::removeLayer(const sp<LayerBase>& layer)
Mutex::Autolock _l(mStateLock);
status_t err = purgatorizeLayer_l(layer);
if (err == NO_ERROR)
- setTransactionFlags(eTransactionNeeded);
+ setTransactionFlags(eDisplayTransactionNeeded);
return err;
}
@@ -1712,7 +1712,7 @@ status_t SurfaceFlinger::onLayerRemoved(const sp<Client>& client, SurfaceID sid)
if (layer != 0) {
err = purgatorizeLayer_l(layer);
if (err == NO_ERROR) {
- setTransactionFlags(eTransactionNeeded);
+ setTransactionFlags(eDisplayTransactionNeeded);
}
}
return err;