resolve merge conflicts of 562d525c2ab1dfc12d05694175634f047242a2d7 to stage-aosp-master
Test: I solemnly swear I tested this conflict resolution.
Bug: None
Change-Id: I404fbbd3b29e2476344c6a7aea16046012cee11a
diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
index acd16fe..558845f 100644
--- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
+++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
@@ -217,13 +217,27 @@
return *this;
}
- auto& addCapability(HWC2::Capability cap) {
- mCapabilities.emplace(cap);
+ auto& setCapabilities(const std::unordered_set<HWC2::Capability>* capabilities) {
+ mCapabilities = capabilities;
+ return *this;
+ }
+
+ auto& setPowerAdvisor(Hwc2::PowerAdvisor* powerAdvisor) {
+ mPowerAdvisor = powerAdvisor;
return *this;
}
void inject(TestableSurfaceFlinger* flinger, Hwc2::Composer* composer) {
- auto display = std::make_unique<HWC2Display>(*composer, mPowerAdvisor, mCapabilities,
+ static FakePowerAdvisor defaultPowerAdvisor;
+ if (mPowerAdvisor == nullptr) mPowerAdvisor = &defaultPowerAdvisor;
+ static const std::unordered_set<HWC2::Capability> defaultCapabilities;
+ if (mCapabilities == nullptr) mCapabilities = &defaultCapabilities;
+
+ // Caution - Make sure that any values passed by reference here do
+ // not refer to an instance owned by FakeHwcDisplayInjector. This
+ // class has temporary lifetime, while the constructed HWC2::Display
+ // is much longer lived.
+ auto display = std::make_unique<HWC2Display>(*composer, *mPowerAdvisor, *mCapabilities,
mHwcDisplayId, mHwcDisplayType);
auto config = HWC2::Display::Config::Builder(*display, mActiveConfig);
@@ -253,8 +267,8 @@
int32_t mDpiX = DEFAULT_DPI;
int32_t mDpiY = DEFAULT_DPI;
int32_t mActiveConfig = DEFAULT_ACTIVE_CONFIG;
- std::unordered_set<HWC2::Capability> mCapabilities;
- FakePowerAdvisor mPowerAdvisor;
+ const std::unordered_set<HWC2::Capability>* mCapabilities = nullptr;
+ Hwc2::PowerAdvisor* mPowerAdvisor = nullptr;
};
class FakeDisplayDeviceInjector {