| Index: cc/tiles/software_image_decode_controller.cc
|
| diff --git a/cc/tiles/software_image_decode_controller.cc b/cc/tiles/software_image_decode_controller.cc
|
| index 8ed5a0eb4e33fdaf94e30d8daedb76c8e30019b5..6c8bbd7a2720e586c4a1a6cb073718f7adc4a0bd 100644
|
| --- a/cc/tiles/software_image_decode_controller.cc
|
| +++ b/cc/tiles/software_image_decode_controller.cc
|
| @@ -64,7 +64,9 @@ class ImageDecodeTaskImpl : public ImageDecodeTask {
|
| image_key_(image_key),
|
| image_(image),
|
| image_ref_(skia::SharePtr(image.image())),
|
| - source_prepare_tiles_id_(source_prepare_tiles_id) {}
|
| + source_prepare_tiles_id_(source_prepare_tiles_id) {
|
| + SetTaskTypeId(TASK_TYPE_IMAGE_DECODE);
|
| + }
|
|
|
| // Overridden from Task:
|
| void RunOnWorkerThread() override {
|
| @@ -76,22 +78,17 @@ class ImageDecodeTaskImpl : public ImageDecodeTask {
|
| controller_->DecodeImage(image_key_, image_);
|
| }
|
|
|
| - // Overridden from TileTask:
|
| - void ScheduleOnOriginThread(TileTaskClient* client) override {}
|
| - void CompleteOnOriginThread(TileTaskClient* client) override {
|
| - controller_->RemovePendingTask(image_key_);
|
| - }
|
| -
|
| protected:
|
| ~ImageDecodeTaskImpl() override {}
|
|
|
| - private:
|
| + public:
|
| SoftwareImageDecodeController* controller_;
|
| SoftwareImageDecodeController::ImageKey image_key_;
|
| DrawImage image_;
|
| skia::RefPtr<const SkImage> image_ref_;
|
| uint64_t source_prepare_tiles_id_;
|
|
|
| + private:
|
| DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl);
|
| };
|
|
|
| @@ -688,6 +685,12 @@ void SoftwareImageDecodeController::ReduceCacheUsage() {
|
| }
|
| }
|
|
|
| +void SoftwareImageDecodeController::ImageDecodeTaskCompleted(Task* task) {
|
| + ImageDecodeTaskImpl* decode_task = static_cast<ImageDecodeTaskImpl*>(task);
|
| + DCHECK(decode_task);
|
| + RemovePendingTask(decode_task->image_key_);
|
| +}
|
| +
|
| void SoftwareImageDecodeController::RemovePendingTask(const ImageKey& key) {
|
| base::AutoLock lock(lock_);
|
| pending_image_tasks_.erase(key);
|
|
|