Index: content/browser/compositor/gpu_process_transport_factory.cc |
diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc |
index 9af7049aa73f0f6b660511d0caac792b9f5bcea8..6e94f4867cd31d5f7bed294e0892d3544e709427 100644 |
--- a/content/browser/compositor/gpu_process_transport_factory.cc |
+++ b/content/browser/compositor/gpu_process_transport_factory.cc |
@@ -282,7 +282,7 @@ static bool ShouldCreateGpuOutputSurface(ui::Compositor* compositor) { |
void GpuProcessTransportFactory::CreateOutputSurface( |
base::WeakPtr<ui::Compositor> compositor) { |
DCHECK(!!compositor); |
- PerCompositorData* data = per_compositor_data_[compositor.get()]; |
+ PerCompositorData* data = per_compositor_data_[compositor.get()].get(); |
if (!data) { |
data = CreatePerCompositorData(compositor.get()); |
} else { |
@@ -326,7 +326,7 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
if (num_attempts > kNumRetriesBeforeSoftwareFallback) { |
@@ -573,7 +573,8 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
std::unique_ptr<ui::Reflector> GpuProcessTransportFactory::CreateReflector( |
ui::Compositor* source_compositor, |
ui::Layer* target_layer) { |
- PerCompositorData* source_data = per_compositor_data_[source_compositor]; |
+ PerCompositorData* source_data = |
+ per_compositor_data_[source_compositor].get(); |
DCHECK(source_data); |
std::unique_ptr<ReflectorImpl> reflector( |
@@ -587,7 +588,7 @@ std::unique_ptr<ui::Reflector> GpuProcessTransportFactory::CreateReflector( |
void GpuProcessTransportFactory::RemoveReflector(ui::Reflector* reflector) { |
ReflectorImpl* reflector_impl = static_cast<ReflectorImpl*>(reflector); |
PerCompositorData* data = |
- per_compositor_data_[reflector_impl->mirrored_compositor()]; |
+ per_compositor_data_[reflector_impl->mirrored_compositor()].get(); |
DCHECK(data); |
data->reflector->Shutdown(); |
data->reflector = nullptr; |
@@ -597,13 +598,12 @@ void GpuProcessTransportFactory::RemoveCompositor(ui::Compositor* compositor) { |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
#if !defined(GPU_SURFACE_HANDLE_IS_ACCELERATED_WINDOW) |
if (data->surface_handle) |
GpuSurfaceTracker::Get()->RemoveSurface(data->surface_handle); |
#endif |
- delete data; |
per_compositor_data_.erase(it); |
if (per_compositor_data_.empty()) { |
// Destroying the GLHelper may cause some async actions to be cancelled, |
@@ -663,7 +663,7 @@ void GpuProcessTransportFactory::SetDisplayVisible(ui::Compositor* compositor, |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
// The compositor will always SetVisible on the Display once it is set up, so |
// do nothing if |display| is null. |
@@ -676,7 +676,7 @@ void GpuProcessTransportFactory::ResizeDisplay(ui::Compositor* compositor, |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
if (data->display) |
data->display->Resize(size); |
@@ -688,7 +688,7 @@ void GpuProcessTransportFactory::SetDisplayColorSpace( |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
data->color_space = color_space; |
if (data->display) |
@@ -701,7 +701,7 @@ void GpuProcessTransportFactory::SetAuthoritativeVSyncInterval( |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
if (data->begin_frame_source) |
data->begin_frame_source->SetAuthoritativeVSyncInterval(interval); |
@@ -714,7 +714,7 @@ void GpuProcessTransportFactory::SetDisplayVSyncParameters( |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
if (data->begin_frame_source) |
data->begin_frame_source->OnUpdateVSyncParameters(timebase, interval); |
@@ -725,7 +725,7 @@ void GpuProcessTransportFactory::SetOutputIsSecure(ui::Compositor* compositor, |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
data->output_is_secure = secure; |
if (data->display) |
@@ -770,7 +770,7 @@ void GpuProcessTransportFactory::SetCompositorSuspendedForRecycle( |
PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
if (it == per_compositor_data_.end()) |
return; |
- PerCompositorData* data = it->second; |
+ PerCompositorData* data = it->second.get(); |
DCHECK(data); |
if (data->display_output_surface) |
data->display_output_surface->SetSurfaceSuspendedForRecycle(suspended); |
@@ -820,7 +820,7 @@ GpuProcessTransportFactory::CreatePerCompositorData( |
gfx::AcceleratedWidget widget = compositor->widget(); |
- PerCompositorData* data = new PerCompositorData; |
+ auto data = base::MakeUnique<PerCompositorData>(); |
if (widget == gfx::kNullAcceleratedWidget) { |
data->surface_handle = gpu::kNullSurfaceHandle; |
} else { |
@@ -832,9 +832,9 @@ GpuProcessTransportFactory::CreatePerCompositorData( |
#endif |
} |
- per_compositor_data_[compositor] = data; |
- |
- return data; |
+ PerCompositorData* return_ptr = data.get(); |
+ per_compositor_data_[compositor] = std::move(data); |
+ return return_ptr; |
} |
void GpuProcessTransportFactory::OnLostMainThreadSharedContextInsideCallback() { |