Chromium Code Reviews| 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 d3c08bdb1a09b0d1256c297148cd190d2fae5690..befde5e6837d402ccfc75337a6e0822131b0b401 100644 |
| --- a/content/common/gpu/client/gpu_memory_buffer_impl.cc |
| +++ b/content/common/gpu/client/gpu_memory_buffer_impl.cc |
| @@ -5,6 +5,7 @@ |
| #include "content/common/gpu/client/gpu_memory_buffer_impl.h" |
| #include "base/logging.h" |
| +#include "base/numerics/safe_math.h" |
| #include "content/common/gpu/client/gpu_memory_buffer_impl_shared_memory.h" |
| #include "ui/gl/gl_bindings.h" |
| @@ -76,16 +77,26 @@ GpuMemoryBufferImpl* GpuMemoryBufferImpl::FromClientBuffer( |
| } |
| // static |
| -size_t GpuMemoryBufferImpl::BytesPerPixel(Format format) { |
| +bool GpuMemoryBufferImpl::StrideInBytes(size_t width, |
| + Format format, |
| + size_t* stride_in_bytes) { |
| + base::CheckedNumeric<size_t> w = width; |
|
reveman
2015/01/13 16:04:40
nit: maybe s/w/s/ for stride
|
| switch (format) { |
| case RGBA_8888: |
| case RGBX_8888: |
| case BGRA_8888: |
| - return 4; |
| + w *= 4; |
| + break; |
| + default: |
|
reveman
2015/01/13 16:04:40
nit: please avoid having a default case as that al
|
| + NOTREACHED(); |
| + return false; |
| } |
| - NOTREACHED(); |
| - return 0; |
| + if (!w.IsValid()) |
| + return false; |
| + |
| + *stride_in_bytes = w.ValueOrDie(); |
| + return true; |
| } |
| gfx::GpuMemoryBuffer::Format GpuMemoryBufferImpl::GetFormat() const { |