diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-10-10 01:03:54 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-10-10 01:03:54 +0000 |
commit | 562d525c2ab1dfc12d05694175634f047242a2d7 (patch) | |
tree | 42ab783882177a5cbd28e976325b719cb354df98 | |
parent | 186578aa8b0285e180b903e1010298251bb29c1d (diff) | |
parent | 08c66224767ece5fd16d31a34f46d77eed4f7c56 (diff) | |
download | native-562d525c2ab1dfc12d05694175634f047242a2d7.tar.gz |
Merge "[SF] Fix unittest crash"
-rw-r--r-- | services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h index f1556d8bc7..eec505ec58 100644 --- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h +++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h @@ -211,13 +211,20 @@ public: return *this; } - auto& addCapability(HWC2::Capability cap) { - mCapabilities.emplace(cap); + auto& setCapabilities(const std::unordered_set<HWC2::Capability>* capabilities) { + mCapabilities = capabilities; return *this; } void inject(TestableSurfaceFlinger* flinger, Hwc2::Composer* composer) { - auto display = std::make_unique<HWC2Display>(*composer, mCapabilities, mHwcDisplayId, + 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, *mCapabilities, mHwcDisplayId, mHwcDisplayType); auto config = HWC2::Display::Config::Builder(*display, mActiveConfig); @@ -247,7 +254,7 @@ public: int32_t mDpiX = DEFAULT_DPI; int32_t mDpiY = DEFAULT_DPI; int32_t mActiveConfig = DEFAULT_ACTIVE_CONFIG; - std::unordered_set<HWC2::Capability> mCapabilities; + const std::unordered_set<HWC2::Capability>* mCapabilities = nullptr; }; class FakeDisplayDeviceInjector { |