Bug 1081911 - Null pointer check (wallpaper) for destDTBufferOnWhite. r=mattwoodrow

This commit is contained in:
Milan Sreckovic 2015-02-02 17:46:22 -05:00
Родитель 4993ea6729
Коммит 9ebbadf44d
1 изменённых файлов: 8 добавлений и 11 удалений

Просмотреть файл

@ -648,10 +648,9 @@ RotatedContentBuffer::BeginPaint(PaintedLayer* aLayer,
destBufferRect = ComputeBufferRect(neededRegion.GetBounds());
CreateBuffer(result.mContentType, destBufferRect, bufferFlags,
&destDTBuffer, &destDTBufferOnWhite);
MOZ_ASSERT(destDTBuffer, "Failed to allocate a texture");
MOZ_ASSERT(destDTBufferOnWhite || !(bufferFlags & BUFFER_COMPONENT_ALPHA),
"Failed to allocate the texture on white");
if (!destDTBuffer) {
if (!destDTBuffer ||
(!destDTBufferOnWhite && (bufferFlags & BUFFER_COMPONENT_ALPHA))) {
gfxCriticalError() << "Failed 1 buffer db=" << hexa(destDTBuffer.get()) << " dw=" << hexa(destDTBufferOnWhite.get()) << " for " << destBufferRect.x << ", " << destBufferRect.y << ", " << destBufferRect.width << ", " << destBufferRect.height;
return result;
}
}
@ -671,10 +670,9 @@ RotatedContentBuffer::BeginPaint(PaintedLayer* aLayer,
// The buffer's not big enough, so allocate a new one
CreateBuffer(result.mContentType, destBufferRect, bufferFlags,
&destDTBuffer, &destDTBufferOnWhite);
MOZ_ASSERT(destDTBuffer, "Failed to allocate a texture");
MOZ_ASSERT(destDTBufferOnWhite || !(bufferFlags & BUFFER_COMPONENT_ALPHA),
"Failed to allocate the texture on white");
if (!destDTBuffer) {
if (!destDTBuffer ||
(!destDTBufferOnWhite && (bufferFlags & BUFFER_COMPONENT_ALPHA))) {
gfxCriticalError() << "Failed 2 buffer db=" << hexa(destDTBuffer.get()) << " dw=" << hexa(destDTBufferOnWhite.get()) << " for " << destBufferRect.x << ", " << destBufferRect.y << ", " << destBufferRect.width << ", " << destBufferRect.height;
return result;
}
}
@ -700,12 +698,11 @@ RotatedContentBuffer::BeginPaint(PaintedLayer* aLayer,
destDTBuffer->SetTransform(Matrix());
if (mode == SurfaceMode::SURFACE_COMPONENT_ALPHA) {
NS_ASSERTION(destDTBufferOnWhite, "Must have a white buffer!");
destDTBufferOnWhite->SetTransform(mat);
if (!EnsureBufferOnWhite()) {
if (!destDTBufferOnWhite || !EnsureBufferOnWhite()) {
return result;
}
MOZ_ASSERT(mDTBufferOnWhite, "Have we got a Thebes buffer for some reason?");
destDTBufferOnWhite->SetTransform(mat);
DrawBufferWithRotation(destDTBufferOnWhite, BUFFER_WHITE, 1.0, CompositionOp::OP_SOURCE);
destDTBufferOnWhite->SetTransform(Matrix());
}