summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2018-10-10 01:03:54 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-10-10 01:03:54 +0000
commit562d525c2ab1dfc12d05694175634f047242a2d7 (patch)
tree42ab783882177a5cbd28e976325b719cb354df98
parent186578aa8b0285e180b903e1010298251bb29c1d (diff)
parent08c66224767ece5fd16d31a34f46d77eed4f7c56 (diff)
downloadnative-562d525c2ab1dfc12d05694175634f047242a2d7.tar.gz
Merge "[SF] Fix unittest crash"
-rw-r--r--services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h15
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 {