| Index: content/common/gpu/client/gpu_memory_buffer_impl.cc
|
| diff --git a/content/common/gpu/client/gpu_memory_buffer_impl.cc b/content/common/gpu/client/gpu_memory_buffer_impl.cc
|
| index 208261dd0831e940f8f858b63a4169888c706db8..dc6ade5ed9d76287cff97119ea1657d117e1d65a 100644
|
| --- a/content/common/gpu/client/gpu_memory_buffer_impl.cc
|
| +++ b/content/common/gpu/client/gpu_memory_buffer_impl.cc
|
| @@ -80,33 +80,33 @@ GpuMemoryBufferImpl* GpuMemoryBufferImpl::FromClientBuffer(
|
| bool GpuMemoryBufferImpl::StrideInBytes(size_t width,
|
| Format format,
|
| size_t* stride_in_bytes) {
|
| - base::CheckedNumeric<size_t> s = width;
|
| + base::CheckedNumeric<size_t> checked_stride = width;
|
| switch (format) {
|
| - case ATCIA:
|
| - case DXT5:
|
| + case GpuMemoryBuffer::R_8:
|
| + checked_stride += 3;
|
| + if (!checked_stride.IsValid())
|
| + return false;
|
| + *stride_in_bytes = checked_stride.ValueOrDie() & ~0x3;
|
| + return true;
|
| + case GpuMemoryBuffer::ATCIA:
|
| + case GpuMemoryBuffer::DXT5:
|
| *stride_in_bytes = width;
|
| return true;
|
| - case ATC:
|
| - case DXT1:
|
| - case ETC1:
|
| - DCHECK_EQ(width % 2, 0U);
|
| - s /= 2;
|
| - if (!s.IsValid())
|
| - return false;
|
| -
|
| - *stride_in_bytes = s.ValueOrDie();
|
| + case GpuMemoryBuffer::ATC:
|
| + case GpuMemoryBuffer::DXT1:
|
| + case GpuMemoryBuffer::ETC1:
|
| + DCHECK_EQ(width % 2, 0u);
|
| + *stride_in_bytes = width / 2;
|
| return true;
|
| - case RGBA_8888:
|
| - case RGBX_8888:
|
| - case BGRA_8888:
|
| - s *= 4;
|
| - if (!s.IsValid())
|
| + case GpuMemoryBuffer::RGBA_8888:
|
| + case GpuMemoryBuffer::RGBX_8888:
|
| + case GpuMemoryBuffer::BGRA_8888:
|
| + checked_stride *= 4;
|
| + if (!checked_stride.IsValid())
|
| return false;
|
| -
|
| - *stride_in_bytes = s.ValueOrDie();
|
| + *stride_in_bytes = checked_stride.ValueOrDie();
|
| return true;
|
| }
|
| -
|
| NOTREACHED();
|
| return false;
|
| }
|
| @@ -120,6 +120,7 @@ size_t GpuMemoryBufferImpl::NumberOfPlanesForGpuMemoryBufferFormat(
|
| case gfx::GpuMemoryBuffer::Format::DXT1:
|
| case gfx::GpuMemoryBuffer::Format::DXT5:
|
| case gfx::GpuMemoryBuffer::Format::ETC1:
|
| + case gfx::GpuMemoryBuffer::Format::R_8:
|
| case gfx::GpuMemoryBuffer::Format::RGBA_8888:
|
| case gfx::GpuMemoryBuffer::Format::RGBX_8888:
|
| case gfx::GpuMemoryBuffer::Format::BGRA_8888:
|
|
|