diff options
author | 2022-11-14 17:45:19 +0000 | |
---|---|---|
committer | 2022-11-14 17:45:19 +0000 | |
commit | 01c31167ce5880ec5f6f97ac82c81c85c9807f19 (patch) | |
tree | 6c6eb22a02b2ea63be3aaa07b274a1918a7ef88b /services/surfaceflinger/ScreenCaptureOutput.cpp | |
parent | 25d2e5e121a6c92eb8ba68bd6e10615aca5f0a8b (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.cpp | 25 |
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(); |