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

* commit 'a6a4a9ed46d02ec0c6493a97cd1d3351bdcced63':
  fix a surface leak introduced by a failed merge (DO NOT MERGE)
This commit is contained in:
Mathias Agopian 2011-06-07 15:02:53 -07:00 committed by Android Git Automerger
commit 13b37b896b

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));
}