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

Commit 9654da31 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Safe iterate over AttributedOp in doForAllInProgressStartOpEvents" into main

parents aa4ea4a3 458f0ddb
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1549,6 +1549,9 @@ public class AppOpsService extends IAppOpsService.Stub {
        final SparseLongArray chainsToFinish = new SparseLongArray();
        doForAllAttributedOpsInUidLocked(uid, (attributedOp) -> {
            attributedOp.doForAllInProgressStartOpEvents((event) -> {
                if (event == null) {
                    return;
                }
                int chainId = event.getAttributionChainId();
                if (chainId != ATTRIBUTION_CHAIN_ID_NONE) {
                    long currentEarliestStartTime =
+3 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.LongSparseArray;
import android.util.Pools;
import android.util.Slog;
@@ -265,8 +266,9 @@ final class AttributedOp {
        }

        int numStartedOps = events.size();
        ArraySet<IBinder> keys = new ArraySet<>(events.keySet());
        for (int i = 0; i < numStartedOps; i++) {
            action.accept(events.valueAt(i));
            action.accept(events.get(keys.valueAt(i)));
        }
    }