summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/ScreenCaptureOutput.cpp
diff options
context:
space:
mode:
author Patrick Williams <pdwilliams@google.com> 2022-11-14 17:45:19 +0000
committer Patrick Williams <pdwilliams@google.com> 2022-11-14 17:45:19 +0000
commit01c31167ce5880ec5f6f97ac82c81c85c9807f19 (patch)
tree6c6eb22a02b2ea63be3aaa07b274a1918a7ef88b /services/surfaceflinger/ScreenCaptureOutput.cpp
parent25d2e5e121a6c92eb8ba68bd6e10615aca5f0a8b (diff)
SF: Fix use after move bug in screen capture refactor
Bug: 238643986 Test: presubmits Change-Id: I1ff3d214eafcf02a1a50e2dc80a0ff4c01807aaf
Diffstat (limited to 'services/surfaceflinger/ScreenCaptureOutput.cpp')
-rw-r--r--services/surfaceflinger/ScreenCaptureOutput.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/services/surfaceflinger/ScreenCaptureOutput.cpp b/services/surfaceflinger/ScreenCaptureOutput.cpp
index 8f93ba40ee..37b3218138 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 @@ std::shared_ptr<ScreenCaptureOutput> createScreenCaptureOutput(ScreenCaptureOutp
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();