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

Commit ade537a3 authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Fix race in removeDeadProvider. Bug: 5202824"

parents defa12e9 2a4c5acc
Loading
Loading
Loading
Loading
+1 −12
Original line number Diff line number Diff line
@@ -4091,7 +4091,7 @@ public final class ActivityThread {
    final void removeDeadProvider(String name, IContentProvider provider) {
        synchronized(mProviderMap) {
            ProviderClientRecord pr = mProviderMap.get(name);
            if (pr.mProvider.asBinder() == provider.asBinder()) {
            if (pr != null && pr.mProvider.asBinder() == provider.asBinder()) {
                Slog.i(TAG, "Removing dead content provider: " + name);
                ProviderClientRecord removed = mProviderMap.remove(name);
                if (removed != null) {
@@ -4101,17 +4101,6 @@ public final class ActivityThread {
        }
    }

    final void removeDeadProviderLocked(String name, IContentProvider provider) {
        ProviderClientRecord pr = mProviderMap.get(name);
        if (pr.mProvider.asBinder() == provider.asBinder()) {
            Slog.i(TAG, "Removing dead content provider: " + name);
            ProviderClientRecord removed = mProviderMap.remove(name);
            if (removed != null) {
                removed.mProvider.asBinder().unlinkToDeath(removed, 0);
            }
        }
    }

    private IContentProvider installProvider(Context context,
            IContentProvider provider, ProviderInfo info, boolean noisy) {
        ContentProvider localProvider = null;