Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Unified Diff: content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc

Issue 600693002: content: Cleanup GpuMemoryBufferImpl destruction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove scoped_refptr<> from sender param of DeletedGpuMemoryBuffer Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc b/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc
index cb5c4a5166f1c51506e0435774c0535359cbd34f..411b86f6ed7d45efc57d2c6c21dbe2f50fb4dd04 100644
--- a/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc
+++ b/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc
@@ -14,6 +14,9 @@ namespace {
base::StaticAtomicSequenceNumber g_next_buffer_id;
+void Noop() {
+}
+
void GpuMemoryBufferCreated(
const gfx::Size& size,
unsigned internalformat,
@@ -21,14 +24,8 @@ void GpuMemoryBufferCreated(
const gfx::GpuMemoryBufferHandle& handle) {
DCHECK_EQ(gfx::OZONE_NATIVE_BUFFER, handle.type);
- scoped_ptr<GpuMemoryBufferImplOzoneNativeBuffer> buffer(
- new GpuMemoryBufferImplOzoneNativeBuffer(size, internalformat));
- if (!buffer->InitializeFromHandle(handle)) {
- callback.Run(scoped_ptr<GpuMemoryBufferImpl>());
- return;
- }
-
- callback.Run(buffer.PassAs<GpuMemoryBufferImpl>());
+ callback.Run(GpuMemoryBufferImplOzoneNativeBuffer::CreateFromHandle(
+ handle, size, internalformat, base::Bind(&Noop)));
}
void GpuMemoryBufferCreatedForChildProcess(
@@ -43,8 +40,10 @@ void GpuMemoryBufferCreatedForChildProcess(
GpuMemoryBufferImplOzoneNativeBuffer::GpuMemoryBufferImplOzoneNativeBuffer(
const gfx::Size& size,
- unsigned internalformat)
- : GpuMemoryBufferImpl(size, internalformat) {
+ unsigned internalformat,
+ const DestructionCallback& callback,
+ const gfx::GpuMemoryBufferId& id)
+ : GpuMemoryBufferImpl(size, internalformat, callback), id_(id) {
}
GpuMemoryBufferImplOzoneNativeBuffer::~GpuMemoryBufferImplOzoneNativeBuffer() {
@@ -70,8 +69,7 @@ void GpuMemoryBufferImplOzoneNativeBuffer::Create(
}
// static
-void
-GpuMemoryBufferImplOzoneNativeBuffer::AllocateOzoneNativeBufferForChildProcess(
+void GpuMemoryBufferImplOzoneNativeBuffer::AllocateForChildProcess(
const gfx::Size& size,
unsigned internalformat,
unsigned usage,
@@ -90,6 +88,20 @@ GpuMemoryBufferImplOzoneNativeBuffer::AllocateOzoneNativeBufferForChildProcess(
}
// static
+scoped_ptr<GpuMemoryBufferImpl>
+GpuMemoryBufferImplOzoneNativeBuffer::CreateFromHandle(
+ const gfx::GpuMemoryBufferHandle& handle,
+ const gfx::Size& size,
+ unsigned internalformat,
+ const DestructionCallback& callback) {
+ DCHECK(IsFormatSupported(internalformat));
+
+ return make_scoped_ptr<GpuMemoryBufferImpl>(
+ new GpuMemoryBufferImplOzoneNativeBuffer(
+ size, internalformat, callback, handle.global_id));
+}
+
+// static
bool GpuMemoryBufferImplOzoneNativeBuffer::IsFormatSupported(
unsigned internalformat) {
switch (internalformat) {
@@ -117,12 +129,6 @@ bool GpuMemoryBufferImplOzoneNativeBuffer::IsConfigurationSupported(
return IsFormatSupported(internalformat) && IsUsageSupported(usage);
}
-bool GpuMemoryBufferImplOzoneNativeBuffer::InitializeFromHandle(
- const gfx::GpuMemoryBufferHandle& handle) {
- id_ = handle.global_id;
- return true;
-}
-
void* GpuMemoryBufferImplOzoneNativeBuffer::Map() {
NOTREACHED();
return NULL;

Powered by Google App Engine
This is Rietveld 408576698