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

Commit da6c6fea authored by Matt Buckley's avatar Matt Buckley
Browse files

Fix crash when checking null surfaces

Test: atest PerformanceHintNativeTestCases
Bug: none
Flag: EXEMPT bugfix
Change-Id: Ie5520a33107187484a15eeb0b536de2ea6c1872e
parent af6a5266
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -859,7 +859,7 @@ void APerformanceHintManager::layersFromNativeSurfaces(ANativeWindow** windows,
        std::vector<ANativeWindow*> windowVec(windows, windows + numWindows);
        for (auto&& window : windowVec) {
            Surface* surface = static_cast<Surface*>(window);
            if (Surface::isValid(surface)) {
            if (surface != nullptr) {
                const sp<IBinder>& handle = surface->getSurfaceControlHandle();
                if (handle != nullptr) {
                    out.push_back(handle);
+9 −0
Original line number Diff line number Diff line
@@ -602,6 +602,15 @@ TEST_F(PerformanceHintTest, TestASessionCreationConfig) {
    ASSERT_NE(config, nullptr);
}

TEST_F(PerformanceHintTest, TestSessionCreationWithNullLayers) {
    EXPECT_CALL(*mMockIHintManager, createHintSessionWithConfig(_, _, _, _, _)).Times(1);
    auto&& config = configFromCreator(
            {.tids = mTids, .nativeWindows = {nullptr}, .surfaceControls = {nullptr}});
    APerformanceHintManager* manager = createManager();
    auto&& session = createSessionUsingConfig(manager, config);
    ASSERT_TRUE(session);
}

TEST_F(PerformanceHintTest, TestSupportObject) {
    // Disable GPU and Power Efficiency support to test partial enabling
    mClientData.supportInfo.sessionModes &= ~(1 << (int)hal::SessionMode::AUTO_GPU);