cc: ImageDecodes: Remove ref counting from SIDC::DecodedImage.
This patch removes ref counting from DecodedImage class in
SoftwareImageDecodeController.
BUG=592823
R=enne, ericrk
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1778673005
Cr-Commit-Position: refs/heads/master@{#380789}
diff --git a/cc/tiles/software_image_decode_controller.h b/cc/tiles/software_image_decode_controller.h
index d68ac90c..7e370bb8 100644
--- a/cc/tiles/software_image_decode_controller.h
+++ b/cc/tiles/software_image_decode_controller.h
@@ -118,12 +118,12 @@
private:
// DecodedImage is a convenience storage for discardable memory. It can also
// construct an image out of SkImageInfo and stored discardable memory.
- // TODO(vmpstr): Make this scoped_ptr.
- class DecodedImage : public base::RefCounted<DecodedImage> {
+ class DecodedImage {
public:
DecodedImage(const SkImageInfo& info,
scoped_ptr<base::DiscardableMemory> memory,
const SkSize& src_rect_offset);
+ ~DecodedImage();
SkImage* image() const {
DCHECK(locked_);
@@ -137,10 +137,6 @@
void Unlock();
private:
- friend class base::RefCounted<DecodedImage>;
-
- ~DecodedImage();
-
bool locked_;
SkImageInfo image_info_;
scoped_ptr<base::DiscardableMemory> memory_;
@@ -175,8 +171,8 @@
// Actually decode the image. Note that this function can (and should) be
// called with no lock acquired, since it can do a lot of work. Note that it
// can also return nullptr to indicate the decode failed.
- scoped_refptr<DecodedImage> DecodeImageInternal(const ImageKey& key,
- const DrawImage& draw_image);
+ scoped_ptr<DecodedImage> DecodeImageInternal(const ImageKey& key,
+ const DrawImage& draw_image);
// Get the decoded draw image for the given key and draw_image. Note that this
// function has to be called with no lock acquired, since it will acquire its
@@ -207,9 +203,8 @@
// ensure that they are safe to access on multiple threads.
base::Lock lock_;
- using ImageMRUCache = base::HashingMRUCache<ImageKey,
- scoped_refptr<DecodedImage>,
- ImageKeyHash>;
+ using ImageMRUCache =
+ base::HashingMRUCache<ImageKey, scoped_ptr<DecodedImage>, ImageKeyHash>;
// Decoded images and ref counts (predecode path).
ImageMRUCache decoded_images_;