--- a/cc/raster/playback_image_provider.cc +++ b/cc/raster/playback_image_provider.cc @@ -20,7 +20,7 @@ PlaybackImageProvider::PlaybackImageProvider( ImageDecodeCache* cache, const gfx::ColorSpace& target_color_space, - base::Optional settings) + base::Optional&& settings) : cache_(cache), target_color_space_(target_color_space), settings_(std::move(settings)) { @@ -70,7 +70,10 @@ } PlaybackImageProvider::Settings::Settings() = default; -PlaybackImageProvider::Settings::Settings(const Settings& other) = default; +PlaybackImageProvider::Settings::Settings(PlaybackImageProvider::Settings&&) = + default; PlaybackImageProvider::Settings::~Settings() = default; +PlaybackImageProvider::Settings& PlaybackImageProvider::Settings::operator=( + PlaybackImageProvider::Settings&&) = default; } // namespace cc --- a/cc/raster/playback_image_provider.h +++ b/cc/raster/playback_image_provider.h @@ -20,8 +20,10 @@ public: struct CC_EXPORT Settings { Settings(); - Settings(const Settings& other); + Settings(const Settings&) = delete; + Settings(Settings&&); ~Settings(); + Settings& operator=(Settings&&); // The set of image ids to skip during raster. PaintImageIdFlatSet images_to_skip; @@ -34,7 +36,7 @@ // If no settings are provided, all images are skipped during rasterization. PlaybackImageProvider(ImageDecodeCache* cache, const gfx::ColorSpace& target_color_space, - base::Optional settings); + base::Optional&& settings); ~PlaybackImageProvider() override; PlaybackImageProvider(PlaybackImageProvider&& other); --- a/cc/raster/playback_image_provider_unittest.cc +++ b/cc/raster/playback_image_provider_unittest.cc @@ -84,7 +84,8 @@ TEST(PlaybackImageProviderTest, SkipsSomeImages) { settings.emplace(); settings->images_to_skip = {skip_image.stable_id()}; - PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings); + PlaybackImageProvider provider(&cache, gfx::ColorSpace(), + std::move(settings)); provider.BeginRaster(); SkIRect rect = SkIRect::MakeWH(10, 10); @@ -100,7 +101,8 @@ TEST(PlaybackImageProviderTest, RefAndUnrefDecode) { base::Optional settings; settings.emplace(); - PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings); + PlaybackImageProvider provider(&cache, gfx::ColorSpace(), + std::move(settings)); provider.BeginRaster(); { @@ -133,7 +135,8 @@ TEST(PlaybackImageProviderTest, AtRasterImages) { settings.emplace(); settings->at_raster_images = {draw_image1, draw_image2}; - PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings); + PlaybackImageProvider provider(&cache, gfx::ColorSpace(), + std::move(settings)); EXPECT_EQ(cache.refed_image_count(), 0); provider.BeginRaster(); @@ -158,7 +161,8 @@ TEST(PlaybackImageProviderTest, SwapsGivenFrames) { settings.emplace(); settings->image_to_current_frame_index = image_to_frame; - PlaybackImageProvider provider(&cache, gfx::ColorSpace(), settings); + PlaybackImageProvider provider(&cache, gfx::ColorSpace(), + std::move(settings)); provider.BeginRaster(); SkIRect rect = SkIRect::MakeWH(10, 10);