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

Commit 7ecac609 authored by Fyodor Kupolov's avatar Fyodor Kupolov Committed by Android (Google) Code Review
Browse files

Merge "Avoid using global PM lock in isProtectedBroadcast"

parents ce65c84f 5ce464e4
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -921,7 +921,8 @@ public class PackageManagerService extends IPackageManager.Stub
    final ArraySet<String> mTransferedPackages = new ArraySet<String>();
    // Broadcast actions that are only available to the system.
    final ArraySet<String> mProtectedBroadcasts = new ArraySet<String>();
    @GuardedBy("mProtectedBroadcasts")
    final ArraySet<String> mProtectedBroadcasts = new ArraySet<>();
    /** List of packages waiting for verification. */
    final SparseArray<PackageVerificationState> mPendingVerification
@@ -5805,7 +5806,7 @@ public class PackageManagerService extends IPackageManager.Stub
    @Override
    public boolean isProtectedBroadcast(String actionName) {
        // allow instant applications
        synchronized (mPackages) {
        synchronized (mProtectedBroadcasts) {
            if (mProtectedBroadcasts.contains(actionName)) {
                return true;
            } else if (actionName != null) {
@@ -11447,11 +11448,13 @@ public class PackageManagerService extends IPackageManager.Stub
            if (pkg.protectedBroadcasts != null) {
                N = pkg.protectedBroadcasts.size();
                synchronized (mProtectedBroadcasts) {
                    for (i = 0; i < N; i++) {
                        mProtectedBroadcasts.add(pkg.protectedBroadcasts.get(i));
                    }
                }
            }
        }
        Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
    }