Index: content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.cc |
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.cc b/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.cc |
index afb4bf2656abe91dd928aeaffeafb5bfffe3055c..8ee1e25562f1137c45df6e51b3c45b9030360d68 100644 |
--- a/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.cc |
+++ b/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.cc |
@@ -13,14 +13,18 @@ namespace content { |
GpuMemoryBufferImplSurfaceTexture::GpuMemoryBufferImplSurfaceTexture( |
const gfx::Size& size, |
- unsigned internalformat) |
- : GpuMemoryBufferImpl(size, internalformat), |
+ unsigned internalformat, |
+ const DestructionCallback& callback) |
+ : GpuMemoryBufferImpl(size, internalformat), callback_(callback) { |
native_window_(NULL), |
stride_(0u) {} |
GpuMemoryBufferImplSurfaceTexture::~GpuMemoryBufferImplSurfaceTexture() { |
- if (native_window_) |
- ANativeWindow_release(native_window_); |
+ if (!native_window_) |
+ return; |
+ |
+ ANativeWindow_release(native_window_); |
+ callback_.Run(); |
} |
// static |