From 36d6abffa95c4ea211d0028c3be07adffef7d80e Mon Sep 17 00:00:00 2001 From: vmpstr Date: Fri, 13 Nov 2015 17:37:11 -0800 Subject: cc: Remove ScopedPtrDeque. This patch removes ScopedPtrDeque and replaces it with a deque of scoped_ptrs. Note that this also adds a helper container_util file that contains TakeBack and TakeFront helpers. R=danakj CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1441613002 Cr-Commit-Position: refs/heads/master@{#359724} --- cc/raster/one_copy_tile_task_worker_pool.cc | 47 +++++++++++++++-------------- cc/raster/one_copy_tile_task_worker_pool.h | 4 +-- cc/raster/task_graph_runner_unittest.cc | 9 +++--- 3 files changed, 32 insertions(+), 28 deletions(-) (limited to 'cc/raster') diff --git a/cc/raster/one_copy_tile_task_worker_pool.cc b/cc/raster/one_copy_tile_task_worker_pool.cc index 5e31746..5aa1aaa 100644 --- a/cc/raster/one_copy_tile_task_worker_pool.cc +++ b/cc/raster/one_copy_tile_task_worker_pool.cc @@ -12,6 +12,7 @@ #include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event_argument.h" +#include "cc/base/container_util.h" #include "cc/base/math_util.h" #include "cc/debug/traced_value.h" #include "cc/raster/raster_buffer.h" @@ -613,8 +614,8 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource, if (!CheckForQueryResult(gl, busy_buffers_.front()->query_id)) break; - MarkStagingBufferAsFree(busy_buffers_.front()); - free_buffers_.push_back(busy_buffers_.take_front()); + MarkStagingBufferAsFree(busy_buffers_.front().get()); + free_buffers_.push_back(PopFront(&busy_buffers_)); } } @@ -628,14 +629,14 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource, if (resource_provider_->use_sync_query()) { WaitForQueryResult(gl, busy_buffers_.front()->query_id); - MarkStagingBufferAsFree(busy_buffers_.front()); - free_buffers_.push_back(busy_buffers_.take_front()); + MarkStagingBufferAsFree(busy_buffers_.front().get()); + free_buffers_.push_back(PopFront(&busy_buffers_)); } else { // Fall-back to glFinish if CHROMIUM_sync_query is not available. gl->Finish(); while (!busy_buffers_.empty()) { - MarkStagingBufferAsFree(busy_buffers_.front()); - free_buffers_.push_back(busy_buffers_.take_front()); + MarkStagingBufferAsFree(busy_buffers_.front().get()); + free_buffers_.push_back(PopFront(&busy_buffers_)); } } } @@ -643,13 +644,14 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource, // Find a staging buffer that allows us to perform partial raster when // using persistent GpuMemoryBuffers. if (use_partial_raster_ && previous_content_id) { - StagingBufferDeque::iterator it = - std::find_if(free_buffers_.begin(), free_buffers_.end(), - [previous_content_id](const StagingBuffer* buffer) { - return buffer->content_id == previous_content_id; - }); + StagingBufferDeque::iterator it = std::find_if( + free_buffers_.begin(), free_buffers_.end(), + [previous_content_id](const scoped_ptr& buffer) { + return buffer->content_id == previous_content_id; + }); if (it != free_buffers_.end()) { - staging_buffer = free_buffers_.take(it); + staging_buffer = it->Pass(); + free_buffers_.erase(it); MarkStagingBufferAsBusy(staging_buffer.get()); } } @@ -658,12 +660,13 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource, if (!staging_buffer) { StagingBufferDeque::iterator it = std::find_if(free_buffers_.begin(), free_buffers_.end(), - [resource](const StagingBuffer* buffer) { + [resource](const scoped_ptr& buffer) { return buffer->size == resource->size() && buffer->format == resource->format(); }); if (it != free_buffers_.end()) { - staging_buffer = free_buffers_.take(it); + staging_buffer = it->Pass(); + free_buffers_.erase(it); MarkStagingBufferAsBusy(staging_buffer.get()); } } @@ -681,9 +684,9 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource, break; free_buffers_.front()->DestroyGLResources(gl); - MarkStagingBufferAsBusy(free_buffers_.front()); - RemoveStagingBuffer(free_buffers_.front()); - free_buffers_.take_front(); + MarkStagingBufferAsBusy(free_buffers_.front().get()); + RemoveStagingBuffer(free_buffers_.front().get()); + free_buffers_.pop_front(); } return staging_buffer.Pass(); @@ -763,9 +766,9 @@ void OneCopyTileTaskWorkerPool::ReleaseBuffersNotUsedSince( return; free_buffers_.front()->DestroyGLResources(gl); - MarkStagingBufferAsBusy(free_buffers_.front()); - RemoveStagingBuffer(free_buffers_.front()); - free_buffers_.take_front(); + MarkStagingBufferAsBusy(free_buffers_.front().get()); + RemoveStagingBuffer(free_buffers_.front().get()); + free_buffers_.pop_front(); } while (!busy_buffers_.empty()) { @@ -773,8 +776,8 @@ void OneCopyTileTaskWorkerPool::ReleaseBuffersNotUsedSince( return; busy_buffers_.front()->DestroyGLResources(gl); - RemoveStagingBuffer(busy_buffers_.front()); - busy_buffers_.take_front(); + RemoveStagingBuffer(busy_buffers_.front().get()); + busy_buffers_.pop_front(); } } } diff --git a/cc/raster/one_copy_tile_task_worker_pool.h b/cc/raster/one_copy_tile_task_worker_pool.h index a582c4e..08445b0 100644 --- a/cc/raster/one_copy_tile_task_worker_pool.h +++ b/cc/raster/one_copy_tile_task_worker_pool.h @@ -5,6 +5,7 @@ #ifndef CC_RASTER_ONE_COPY_TILE_TASK_WORKER_POOL_H_ #define CC_RASTER_ONE_COPY_TILE_TASK_WORKER_POOL_H_ +#include #include #include "base/memory/weak_ptr.h" @@ -12,7 +13,6 @@ #include "base/time/time.h" #include "base/trace_event/memory_dump_provider.h" #include "base/values.h" -#include "cc/base/scoped_ptr_deque.h" #include "cc/output/context_provider.h" #include "cc/raster/tile_task_runner.h" #include "cc/raster/tile_task_worker_pool.h" @@ -152,7 +152,7 @@ class CC_EXPORT OneCopyTileTaskWorkerPool // |lock_| must be acquired when accessing the following members. using StagingBufferSet = std::set; StagingBufferSet buffers_; - using StagingBufferDeque = ScopedPtrDeque; + using StagingBufferDeque = std::deque>; StagingBufferDeque free_buffers_; StagingBufferDeque busy_buffers_; int bytes_scheduled_since_last_flush_; diff --git a/cc/raster/task_graph_runner_unittest.cc b/cc/raster/task_graph_runner_unittest.cc index eb9b6d9..31144e7 100644 --- a/cc/raster/task_graph_runner_unittest.cc +++ b/cc/raster/task_graph_runner_unittest.cc @@ -4,12 +4,13 @@ #include "cc/raster/task_graph_runner.h" +#include #include #include "base/bind.h" #include "base/synchronization/lock.h" #include "base/threading/simple_thread.h" -#include "cc/base/scoped_ptr_deque.h" +#include "cc/base/container_util.h" #include "testing/gtest/include/gtest/gtest.h" namespace cc { @@ -181,8 +182,8 @@ class TaskGraphRunnerTest : public TaskGraphRunnerTestBase, } void TearDown() override { task_graph_runner_->Shutdown(); - while (workers_.size()) { - scoped_ptr worker = workers_.take_front(); + while (!workers_.empty()) { + scoped_ptr worker = PopFront(&workers_); worker->Join(); } } @@ -191,7 +192,7 @@ class TaskGraphRunnerTest : public TaskGraphRunnerTestBase, // Overridden from base::DelegateSimpleThread::Delegate: void Run() override { task_graph_runner_->Run(); } - ScopedPtrDeque workers_; + std::deque> workers_; }; TEST_P(TaskGraphRunnerTest, Basic) { -- cgit v1.1