summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger/Layer.cpp
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2009-10-02 18:12:30 -0700
committerMathias Agopian <mathias@google.com>2009-10-02 18:12:30 -0700
commit0b3ad46a26dc3717260fa9347c77f673f3198606 (patch)
treee101cea80b6258fa478b702cfef622747f3f9e39 /libs/surfaceflinger/Layer.cpp
parentc91af0c12e24d56262a2c100d9e46de26b33fb91 (diff)
downloadframeworks_native-0b3ad46a26dc3717260fa9347c77f673f3198606.zip
frameworks_native-0b3ad46a26dc3717260fa9347c77f673f3198606.tar.gz
frameworks_native-0b3ad46a26dc3717260fa9347c77f673f3198606.tar.bz2
Attempt to fix [2152536] ANR in browser
The ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable. When it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return immediately in the above case. For some reason, the surface here wasn't marked as NO_INIT. This change makes the code more robust by always (irregadless or errors) setting the NO_INIT status in all code paths where a surface is removed from the list. Additionaly added more information in the logs, should this happen again.
Diffstat (limited to 'libs/surfaceflinger/Layer.cpp')
-rw-r--r--libs/surfaceflinger/Layer.cpp8
1 files changed, 0 insertions, 8 deletions
diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp
index 07222ec..13201db 100644
--- a/libs/surfaceflinger/Layer.cpp
+++ b/libs/surfaceflinger/Layer.cpp
@@ -65,14 +65,6 @@ Layer::~Layer()
// the actual buffers will be destroyed here
}
-// called with SurfaceFlinger::mStateLock as soon as the layer is entered
-// in the purgatory list
-void Layer::onRemoved()
-{
- // wake up the condition
- lcblk->setStatus(NO_INIT);
-}
-
void Layer::destroy()
{
for (size_t i=0 ; i<NUM_BUFFERS ; i++) {