From f9b0e826689cca5ecbd40aa49f3ea7f7c73ad2a2 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Fri, 11 Dec 2009 00:56:10 -0800 Subject: fix [2269582] [TOP-10][Passion_1506][APT:Camera]Sometimes camera preview screen is truncated after launching and back to home screen by home key repeatedly When a surface is removed from the screen while it holds a "freeze lock", the release of that lock happens in the destructor as a "safety net". However, it doesn't trigger an update at that point. Make sure that "freeze locks" are released from the transaction at the point a surface is removed from the screen (if it's not on screen, it shouldn't prevent the screen to redraw, and therefore cannot hold a freeze lock). The refresh corresponding to that transaction will pick it up as soon as possible. --- libs/surfaceflinger/Layer.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'libs/surfaceflinger/Layer.cpp') diff --git a/libs/surfaceflinger/Layer.cpp b/libs/surfaceflinger/Layer.cpp index b12c749f2770..1870d3a29cff 100644 --- a/libs/surfaceflinger/Layer.cpp +++ b/libs/surfaceflinger/Layer.cpp @@ -93,6 +93,7 @@ sp Layer::createSurface() const status_t Layer::ditch() { // the layer is not on screen anymore. free as much resources as possible + mFreezeLock.clear(); destroy(); return NO_ERROR; } -- cgit v1.2.3-59-g8ed1b