[sf] HdrOutputControlTest: fix strategy arguments
The code was previously passing an aidl::[...]::common::HdrConversionStrategy* argument to gui::ISurfaceComposer::setHdrConversionStrategy, which accepts a const gui::HdrConversionStrategy& parameter. Converting between these two kinds of HdrConversionStrategy is laborious -- see SurfaceFlinger::setHdrConversionStrategy. This code was previously avoiding the conversion difficulty by passing a pointer to HdrConversionStrategy, which is wrong because the function actually accepts a const reference. It worked, though, because gui::HdrConversionStrategy's _value has type: std::variant<bool, ::std::vector<int32_t>, int32_t> ... and aidl::[...]::common::HdrConversionStrategy* can be coerced to bool. The pointer is always non-nullptr, so each sf->setHdrConversionStrategy was actually passing a {passthrough==true} strategy. The C++ standard tightened the rules around variant conversion (P0608R3, P1957R2), and after upgrading libc++, this code no longer compiles. Fix the compile error by using gui::HdrConversionStrategy for the type of the strategy vector elements. Bug: 175635923 Test: m MODULES-IN-frameworks-native-services-surfaceflinger (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:0dfa358c79fc8047dd622d82020c37559871c8e7) Merged-In: I820ac945113da0317d0eaa44f581fd6ab1b61645 Change-Id: I820ac945113da0317d0eaa44f581fd6ab1b61645
Loading
Please register or sign in to comment