SF: Fix use after move bug in screen capture refactor
Bug: 238643986
Test: presubmits
Change-Id: I1ff3d214eafcf02a1a50e2dc80a0ff4c01807aaf
diff --git a/services/surfaceflinger/ScreenCaptureOutput.cpp b/services/surfaceflinger/ScreenCaptureOutput.cpp
index 8f93ba4..37b3218 100644
--- a/services/surfaceflinger/ScreenCaptureOutput.cpp
+++ b/services/surfaceflinger/ScreenCaptureOutput.cpp
@@ -24,10 +24,16 @@
namespace android {
-std::shared_ptr<ScreenCaptureOutput> createScreenCaptureOutput(ScreenCaptureOutputArgs&& args) {
+std::shared_ptr<ScreenCaptureOutput> createScreenCaptureOutput(ScreenCaptureOutputArgs args) {
std::shared_ptr<ScreenCaptureOutput> output = compositionengine::impl::createOutputTemplated<
- ScreenCaptureOutput, compositionengine::CompositionEngine,
- ScreenCaptureOutputArgs&&>(args.compositionEngine, std::move(args));
+ ScreenCaptureOutput, compositionengine::CompositionEngine, const RenderArea&,
+ std::unordered_set<compositionengine::LayerFE*>,
+ const compositionengine::Output::ColorProfile&, bool>(args.compositionEngine,
+ args.renderArea,
+ std::move(
+ args.filterForScreenshot),
+ args.colorProfile,
+ args.regionSampling);
output->editState().isSecure = args.renderArea.isSecure();
output->setCompositionEnabled(true);
output->setLayerFilter({args.layerStack});
@@ -50,11 +56,14 @@
return output;
}
-ScreenCaptureOutput::ScreenCaptureOutput(ScreenCaptureOutputArgs&& args)
- : mRenderArea(args.renderArea),
- mFilterForScreenshot(std::move(args.filterForScreenshot)),
- mColorProfile(args.colorProfile),
- mRegionSampling(args.regionSampling) {}
+ScreenCaptureOutput::ScreenCaptureOutput(
+ const RenderArea& renderArea,
+ std::unordered_set<compositionengine::LayerFE*> filterForScreenshot,
+ const compositionengine::Output::ColorProfile& colorProfile, bool regionSampling)
+ : mRenderArea(renderArea),
+ mFilterForScreenshot(std::move(filterForScreenshot)),
+ mColorProfile(colorProfile),
+ mRegionSampling(regionSampling) {}
void ScreenCaptureOutput::updateColorProfile(const compositionengine::CompositionRefreshArgs&) {
auto& outputState = editState();