From ba5144b65f3910c870d9bc9e5a12e140f7d0e773 Mon Sep 17 00:00:00 2001 From: "kaanb@chromium.org" Date: Thu, 25 Apr 2013 04:34:08 +0000 Subject: android_webview: Assert map/unmap order for GpuMemoryBuffer BUG=175012 Review URL: https://chromiumcodereview.appspot.com/14471016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196306 0039d316-1c4b-4281-b951-d872f2087c98 --- android_webview/browser/gpu_memory_buffer_impl.cc | 7 ++++++- android_webview/browser/gpu_memory_buffer_impl.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'android_webview') diff --git a/android_webview/browser/gpu_memory_buffer_impl.cc b/android_webview/browser/gpu_memory_buffer_impl.cc index b44de8c..dcd7345 100644 --- a/android_webview/browser/gpu_memory_buffer_impl.cc +++ b/android_webview/browser/gpu_memory_buffer_impl.cc @@ -20,7 +20,8 @@ AwDrawGLFunctionTable* g_gl_draw_functions = NULL; GpuMemoryBufferImpl::GpuMemoryBufferImpl(gfx::Size size) : buffer_id_(g_gl_draw_functions->create_graphic_buffer( size.width(), size.height())), - size_(size) { + size_(size), + mapped_(false) { } GpuMemoryBufferImpl::~GpuMemoryBufferImpl() { @@ -32,14 +33,18 @@ GpuMemoryBufferImpl::~GpuMemoryBufferImpl() { void GpuMemoryBufferImpl::Map(gpu::GpuMemoryBuffer::AccessMode mode, void** vaddr) { DCHECK(buffer_id_ != 0); + DCHECK(!mapped_); int err = g_gl_draw_functions->lock(buffer_id_, mode, vaddr); DCHECK(err == 0); + mapped_ = true; } void GpuMemoryBufferImpl::Unmap() { DCHECK(buffer_id_ != 0); + DCHECK(mapped_); int err = g_gl_draw_functions->unlock(buffer_id_); DCHECK(err == 0); + mapped_ = false; } void* GpuMemoryBufferImpl::GetNativeBuffer() { diff --git a/android_webview/browser/gpu_memory_buffer_impl.h b/android_webview/browser/gpu_memory_buffer_impl.h index 493c140..e584b7c 100644 --- a/android_webview/browser/gpu_memory_buffer_impl.h +++ b/android_webview/browser/gpu_memory_buffer_impl.h @@ -30,6 +30,7 @@ class GpuMemoryBufferImpl : public gpu::GpuMemoryBuffer { private: int buffer_id_; gfx::Size size_; + bool mapped_; DISALLOW_COPY_AND_ASSIGN(GpuMemoryBufferImpl); }; -- cgit v1.1