Index: cc/resources/pixel_buffer_raster_worker_pool.h |
diff --git a/cc/resources/pixel_buffer_raster_worker_pool.h b/cc/resources/pixel_buffer_raster_worker_pool.h |
index fe34d1b0268faa8c16d5604be88933e25ec5170e..7130cced293c91ad3ca12225d9326bf006573583 100644 |
--- a/cc/resources/pixel_buffer_raster_worker_pool.h |
+++ b/cc/resources/pixel_buffer_raster_worker_pool.h |
@@ -5,22 +5,10 @@ |
#ifndef CC_RESOURCES_PIXEL_BUFFER_RASTER_WORKER_POOL_H_ |
#define CC_RESOURCES_PIXEL_BUFFER_RASTER_WORKER_POOL_H_ |
-#include <deque> |
+#include <vector> |
-#include "base/containers/hash_tables.h" |
#include "cc/resources/raster_worker_pool.h" |
-#if defined(COMPILER_GCC) |
-namespace BASE_HASH_NAMESPACE { |
-template <> |
-struct hash<cc::internal::WorkerPoolTask*> { |
- size_t operator()(cc::internal::WorkerPoolTask* ptr) const { |
- return hash<size_t>()(reinterpret_cast<size_t>(ptr)); |
- } |
-}; |
-} // namespace BASE_HASH_NAMESPACE |
-#endif // COMPILER |
- |
namespace cc { |
class CC_EXPORT PixelBufferRasterWorkerPool : public RasterWorkerPool { |
@@ -51,24 +39,33 @@ class CC_EXPORT PixelBufferRasterWorkerPool : public RasterWorkerPool { |
private: |
struct RasterTaskState { |
- RasterTaskState() |
- : type(UNSCHEDULED), resource(NULL), required_for_activation(false) {} |
- |
- RasterTaskState& set_completed() { |
- type = COMPLETED; |
- return *this; |
- } |
- RasterTaskState& set_required_for_activation(bool is_required) { |
- required_for_activation = is_required; |
- return *this; |
- } |
+ class TaskComparator { |
+ public: |
+ explicit TaskComparator(const internal::WorkerPoolTask* task) |
+ : task_(task) {} |
+ |
+ bool operator()(const RasterTaskState& state) const { |
+ return state.task == task_; |
+ } |
+ |
+ private: |
+ const internal::WorkerPoolTask* task_; |
+ }; |
+ |
+ typedef std::vector<RasterTaskState> Vector; |
+ |
+ RasterTaskState(internal::WorkerPoolTask* task, |
+ bool required_for_activation) |
+ : type(UNSCHEDULED), |
+ task(task), |
+ resource(NULL), |
+ required_for_activation(required_for_activation) {} |
enum { UNSCHEDULED, SCHEDULED, UPLOADING, COMPLETED } type; |
+ internal::WorkerPoolTask* task; |
const Resource* resource; |
bool required_for_activation; |
}; |
- typedef internal::WorkerPoolTask* RasterTaskMapKey; |
- typedef base::hash_map<RasterTaskMapKey, RasterTaskState> RasterTaskStateMap; |
// Overridden from RasterWorkerPool: |
virtual void OnRasterTasksFinished() OVERRIDE; |
@@ -92,10 +89,10 @@ class CC_EXPORT PixelBufferRasterWorkerPool : public RasterWorkerPool { |
bool shutdown_; |
RasterTaskQueue raster_tasks_; |
- RasterTaskStateMap raster_task_states_; |
+ RasterTaskState::Vector raster_task_states_; |
TaskDeque raster_tasks_with_pending_upload_; |
- TaskDeque completed_raster_tasks_; |
- TaskDeque completed_image_decode_tasks_; |
+ TaskVector completed_raster_tasks_; |
+ TaskVector completed_image_decode_tasks_; |
size_t scheduled_raster_task_count_; |
size_t raster_tasks_required_for_activation_count_; |