Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc3b0ab2 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[SF] Fix unittest crash"

parents b5d2d0ed e22f033f
Loading
Loading
Loading
Loading
+19 −5
Original line number Diff line number Diff line
@@ -220,13 +220,27 @@ public:
            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);
@@ -256,8 +270,8 @@ public:
        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 {