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

Commit 85e62f11 authored by Liz Prucka's avatar Liz Prucka
Browse files

Error fix from enabling Clang thread-safety checks in Cuttlefish

Parent bug: b/353324127. Enabling `thread-safety-reference-return`
to allow developers to utilize Clang thread safety guardrails
(GUARDED_BY, REQUIRES, EXCLUDES).

Added NO_THREAD_SAFETY_ANALYSIS annotations to violating functions.
If this is not desired, please respond with concerns
or preferred fix.

Bug: 354740314
Flag: TEST_ONLY
Test: m out/soong/.intermediates/frameworks/native/services/surfaceflinger/tests/unittests/libsurfaceflinger_unittest/android_x86_silvermont/obj/frameworks/native/services/surfaceflinger/tests/unittests/CommitTest.o
Change-Id: I9be1254c3e2685b0aa950b314c581824f40ce26c
parent 3cc94148
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -490,8 +490,10 @@ public:
        return mFlinger->SurfaceFlinger::getDisplayNativePrimaries(displayToken, primaries);
    }

    auto& getTransactionQueue() { return mFlinger->mTransactionHandler.mLocklessTransactionQueue; }
    auto& getPendingTransactionQueue() {
    auto& getTransactionQueue() NO_THREAD_SAFETY_ANALYSIS {
        return mFlinger->mTransactionHandler.mLocklessTransactionQueue;
    }
    auto& getPendingTransactionQueue() NO_THREAD_SAFETY_ANALYSIS {
        ftl::FakeGuard guard(kMainThreadContext);
        return mFlinger->mTransactionHandler.mPendingTransactionQueues;
    }
@@ -701,7 +703,9 @@ public:
    }

    auto& mutableMinAcquiredBuffers() { return SurfaceFlinger::minAcquiredBuffers; }
    auto& mutableLayerSnapshotBuilder() { return mFlinger->mLayerSnapshotBuilder; };
    auto& mutableLayerSnapshotBuilder() NO_THREAD_SAFETY_ANALYSIS {
        return mFlinger->mLayerSnapshotBuilder;
    }

    auto fromHandle(const sp<IBinder>& handle) { return LayerHandle::getLayer(handle); }