am f6c82067: fix a surface leak introduced by a failed merge (DO NOT MERGE)

* commit 'f6c8206735e7e078461e5f2aef6e1a1446fdd075':
  fix a surface leak introduced by a failed merge (DO NOT MERGE)
This commit is contained in:
Mathias Agopian 2011-06-07 14:58:02 -07:00 committed by Android Git Automerger
commit 3d95709b08

View File

@ -1389,6 +1389,14 @@ status_t SurfaceFlinger::destroySurface(const wp<LayerBaseClient>& layer)
if (l != NULL) {
Mutex::Autolock _l(mStateLock);
err = removeLayer_l(l);
if (err == NAME_NOT_FOUND) {
// The surface wasn't in the current list, which means it was
// removed already, which means it is in the purgatory,
// and need to be removed from there.
ssize_t idx = mLayerPurgatory.remove(l);
LOGE_IF(idx < 0,
"layer=%p is not in the purgatory list", l.get());
}
LOGE_IF(err<0 && err != NAME_NOT_FOUND,
"error removing layer=%p (%s)", l.get(), strerror(-err));
}