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 86d1bb2c5749430e57378a3a8b49f2c00e14fcde..7d3a75afa636a50566822443301e16f12a3386c2 100644 |
--- a/cc/tiles/software_image_decode_controller.cc |
+++ b/cc/tiles/software_image_decode_controller.cc |
@@ -62,7 +62,7 @@ class ImageDecodeTaskImpl : public TileTask { |
const SoftwareImageDecodeController::ImageKey& image_key, |
const DrawImage& image, |
const ImageDecodeController::TracingInfo& tracing_info) |
- : TileTask(true), |
+ : TileTask(TileTask::Type::IMAGE_DECODE, true), |
controller_(controller), |
image_key_(image_key), |
image_(image), |
@@ -78,21 +78,16 @@ class ImageDecodeTaskImpl : public TileTask { |
controller_->DecodeImage(image_key_, image_); |
} |
- // Overridden from TileTask: |
- void ScheduleOnOriginThread(RasterBufferProvider* provider) override {} |
- void CompleteOnOriginThread(RasterBufferProvider* provider) override { |
- controller_->RemovePendingTask(image_key_); |
- } |
- |
protected: |
~ImageDecodeTaskImpl() override {} |
- private: |
+ public: |
vmpstr
2016/05/18 19:08:34
Why are these public? This doesn't look correct.
prashant.n
2016/05/19 00:59:52
Yes. This looks odd and not good as this class is
|
SoftwareImageDecodeController* controller_; |
SoftwareImageDecodeController::ImageKey image_key_; |
DrawImage image_; |
const ImageDecodeController::TracingInfo tracing_info_; |
+ private: |
DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl); |
}; |
@@ -723,6 +718,12 @@ void SoftwareImageDecodeController::ReduceCacheUsage() { |
} |
} |
+void SoftwareImageDecodeController::OnImageDecodeTaskCompleted(TileTask* task) { |
+ ImageDecodeTaskImpl* decode_task = static_cast<ImageDecodeTaskImpl*>(task); |
vmpstr
2016/05/18 19:08:34
I think we should rework this so we don't need a s
prashant.n
2016/05/19 00:59:52
I'll check this. static cast was added for downcas
|
+ DCHECK(decode_task); |
+ RemovePendingTask(decode_task->image_key_); |
+} |
+ |
void SoftwareImageDecodeController::RemovePendingTask(const ImageKey& key) { |
base::AutoLock lock(lock_); |
pending_image_tasks_.erase(key); |