am 79f2e1af: am e31564d8: Fix a crasher is surfaceflinger.

* commit '79f2e1afbc08cd0cbcddc70cde5e3b7f1f0afea4':
  Fix a crasher is surfaceflinger.
This commit is contained in:
Mathias Agopian 2012-05-29 21:09:04 -07:00 committed by Android Git Automerger
commit 7312f864f8

View File

@ -617,20 +617,20 @@ void Layer::lockPageFlip(bool& recomputeVisibleRegions)
return;
}
// update the active buffer
mActiveBuffer = mSurfaceTexture->getCurrentBuffer();
if (mActiveBuffer == NULL) {
// this can only happen if the very first buffer was rejected.
return;
}
mFrameLatencyNeeded = true;
if (oldActiveBuffer == NULL && mActiveBuffer != NULL) {
if (oldActiveBuffer == NULL) {
// the first time we receive a buffer, we need to trigger a
// geometry invalidation.
mFlinger->invalidateHwcGeometry();
}
uint32_t bufWidth = mActiveBuffer->getWidth();
uint32_t bufHeight = mActiveBuffer->getHeight();
Rect crop(mSurfaceTexture->getCurrentCrop());
const uint32_t transform(mSurfaceTexture->getCurrentTransform());
const uint32_t scalingMode(mSurfaceTexture->getCurrentScalingMode());
@ -645,6 +645,8 @@ void Layer::lockPageFlip(bool& recomputeVisibleRegions)
}
if (oldActiveBuffer != NULL) {
uint32_t bufWidth = mActiveBuffer->getWidth();
uint32_t bufHeight = mActiveBuffer->getHeight();
if (bufWidth != uint32_t(oldActiveBuffer->width) ||
bufHeight != uint32_t(oldActiveBuffer->height)) {
mFlinger->invalidateHwcGeometry();