@@ -1054,7 +1054,7 @@ status_t SurfaceFlinger::removeLayer_l(const sp<LayerBase>& layerBase)
10541054{
10551055 sp<LayerBaseClient> lbc (layerBase->getLayerBaseClient ());
10561056 if (lbc != 0 ) {
1057- mLayerMap .removeItem ( lbc->getSurfaceBinder () );
1057+ mLayerMap .removeItem ( lbc->getSurface ()-> asBinder () );
10581058 }
10591059 ssize_t index = mCurrentState .layersSortedByZ .remove (layerBase);
10601060 if (index >= 0 ) {
@@ -1066,12 +1066,8 @@ status_t SurfaceFlinger::removeLayer_l(const sp<LayerBase>& layerBase)
10661066
10671067status_t SurfaceFlinger::purgatorizeLayer_l (const sp<LayerBase>& layerBase)
10681068{
1069- // First add the layer to the purgatory list, which makes sure it won't
1070- // go away, then remove it from the main list (through a transaction).
1069+ // remove the layer from the main list (through a transaction).
10711070 ssize_t err = removeLayer_l (layerBase);
1072- if (err >= 0 ) {
1073- mLayerPurgatory .add (layerBase);
1074- }
10751071
10761072 layerBase->onRemoved ();
10771073
@@ -1342,19 +1338,6 @@ status_t SurfaceFlinger::destroySurface(const sp<LayerBaseClient>& layer)
13421338 * to use the purgatory.
13431339 */
13441340 status_t err = flinger->removeLayer_l (l);
1345- if (err == NAME_NOT_FOUND) {
1346- // The surface wasn't in the current list, which means it was
1347- // removed already, which means it is in the purgatory,
1348- // and need to be removed from there.
1349- // This needs to happen from the main thread since its dtor
1350- // must run from there (b/c of OpenGL ES). Additionally, we
1351- // can't really acquire our internal lock from
1352- // destroySurface() -- see postMessage() below.
1353- ssize_t idx = flinger->mLayerPurgatory .remove (l);
1354- LOGE_IF (idx < 0 ,
1355- " layer=%p is not in the purgatory list" , l.get ());
1356- }
1357-
13581341 LOGE_IF (err<0 && err != NAME_NOT_FOUND,
13591342 " error removing layer=%p (%s)" , l.get (), strerror (-err));
13601343 return true ;
@@ -1470,13 +1453,8 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args)
14701453 result.append (buffer);
14711454 }
14721455
1473- /*
1474- * Dump the visible layer list
1475- */
14761456 const LayerVector& currentLayers = mCurrentState .layersSortedByZ ;
14771457 const size_t count = currentLayers.size ();
1478- snprintf (buffer, SIZE, " Visible layers (count = %d)\n " , count);
1479- result.append (buffer);
14801458 for (size_t i=0 ; i<count ; i++) {
14811459 const sp<LayerBase>& layer (currentLayers[i]);
14821460 layer->dump (result, buffer, SIZE);
@@ -1486,24 +1464,6 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args)
14861464 layer->visibleRegionScreen .dump (result, " visibleRegionScreen" );
14871465 }
14881466
1489- /*
1490- * Dump the layers in the purgatory
1491- */
1492-
1493- const size_t purgatorySize = mLayerPurgatory .size ();
1494- snprintf (buffer, SIZE, " Purgatory state (%d entries)\n " , purgatorySize);
1495- result.append (buffer);
1496- for (size_t i=0 ; i<purgatorySize ; i++) {
1497- const sp<LayerBase>& layer (mLayerPurgatory .itemAt (i));
1498- layer->shortDump (result, buffer, SIZE);
1499- }
1500-
1501- /*
1502- * Dump SurfaceFlinger global state
1503- */
1504-
1505- snprintf (buffer, SIZE, " SurfaceFlinger global state\n " );
1506- result.append (buffer);
15071467 mWormholeRegion .dump (result, " WormholeRegion" );
15081468 const DisplayHardware& hw (graphicPlane (0 ).displayHardware ());
15091469 snprintf (buffer, SIZE,
@@ -1529,9 +1489,6 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args)
15291489 result.append (buffer);
15301490 }
15311491
1532- /*
1533- * Dump gralloc state
1534- */
15351492 const GraphicBufferAllocator& alloc (GraphicBufferAllocator::get ());
15361493 alloc.dump (result);
15371494
0 commit comments