attempt to fix [2099362] Possible SurfaceFlinger crash
This commit is contained in:
@@ -573,8 +573,10 @@ void SurfaceFlinger::handleTransaction(uint32_t transactionFlags)
|
|||||||
// do this without lock held
|
// do this without lock held
|
||||||
const size_t count = ditchedLayers.size();
|
const size_t count = ditchedLayers.size();
|
||||||
for (size_t i=0 ; i<count ; i++) {
|
for (size_t i=0 ; i<count ; i++) {
|
||||||
//LOGD("ditching layer %p", ditchedLayers[i].get());
|
if (ditchedLayers[i] != 0) {
|
||||||
ditchedLayers[i]->ditch();
|
//LOGD("ditching layer %p", ditchedLayers[i].get());
|
||||||
|
ditchedLayers[i]->ditch();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1082,6 +1084,8 @@ status_t SurfaceFlinger::invalidateLayerVisibility(const sp<LayerBase>& layer)
|
|||||||
|
|
||||||
status_t SurfaceFlinger::addLayer_l(const sp<LayerBase>& layer)
|
status_t SurfaceFlinger::addLayer_l(const sp<LayerBase>& layer)
|
||||||
{
|
{
|
||||||
|
if (layer == 0)
|
||||||
|
return BAD_VALUE;
|
||||||
ssize_t i = mCurrentState.layersSortedByZ.add(
|
ssize_t i = mCurrentState.layersSortedByZ.add(
|
||||||
layer, &LayerBase::compareCurrentStateZ);
|
layer, &LayerBase::compareCurrentStateZ);
|
||||||
sp<LayerBaseClient> lbc = LayerBase::dynamicCast< LayerBaseClient* >(layer.get());
|
sp<LayerBaseClient> lbc = LayerBase::dynamicCast< LayerBaseClient* >(layer.get());
|
||||||
|
|||||||
Reference in New Issue
Block a user