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

Commit aabbc788 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "UidObserverController: Protect mValidateUids with mLock" into main am:...

Merge "UidObserverController: Protect mValidateUids with mLock" into main am: e8617b5a am: d5c8c520

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3420561



Change-Id: I22312e529141d0e3dcb68a60f9e42bfe9505d684
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 6a9beab9 d5c8c520
Loading
Loading
Loading
Loading
+31 −25
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ public class UidObserverController {
     * This is for verifying the UID report flow.
     */
    private static final boolean VALIDATE_UID_STATES = true;
    @GuardedBy("mLock")
    private final ActiveUids mValidateUids;

    UidObserverController(@NonNull Handler handler) {
@@ -285,6 +286,7 @@ public class UidObserverController {
        }
        mUidObservers.finishBroadcast();

        synchronized (mLock) {
            if (VALIDATE_UID_STATES && mUidObservers.getRegisteredCallbackCount() > 0) {
                for (int j = 0; j < numUidChanges; ++j) {
                    final ChangeRecord item = mActiveUidChanges[j];
@@ -308,8 +310,6 @@ public class UidObserverController {
                    }
                }
            }

        synchronized (mLock) {
            for (int j = 0; j < numUidChanges; j++) {
                final ChangeRecord changeRecord = mActiveUidChanges[j];
                changeRecord.isPending = false;
@@ -436,8 +436,10 @@ public class UidObserverController {
    }

    UidRecord getValidateUidRecord(int uid) {
        synchronized (mLock) {
            return mValidateUids.get(uid);
        }
    }

    void dump(@NonNull PrintWriter pw, @Nullable String dumpPackage) {
        synchronized (mLock) {
@@ -491,13 +493,17 @@ public class UidObserverController {

    boolean dumpValidateUids(@NonNull PrintWriter pw, @Nullable String dumpPackage, int dumpAppId,
            @NonNull String header, boolean needSep) {
        synchronized (mLock) {
            return mValidateUids.dump(pw, dumpPackage, dumpAppId, header, needSep);
        }
    }

    void dumpValidateUidsProto(@NonNull ProtoOutputStream proto, @Nullable String dumpPackage,
            int dumpAppId, long fieldId) {
        synchronized (mLock) {
            mValidateUids.dumpProto(proto, dumpPackage, dumpAppId, fieldId);
        }
    }

    static final class ChangeRecord {
        public boolean isPending;