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

Commit 29fcd1bb authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Fix system service crash on radio session death. DO NOT MERGE am: 1b16c57b

Change-Id: I41cd190455210797e2620a49fc1f655103abf95c
parents 43079efe 1b16c57b
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -233,18 +233,24 @@ class RadioModule {
    }

    private void fanoutAidlCallbackLocked(AidlCallbackRunnable runnable) {
        List<TunerSession> deadSessions = null;
        for (TunerSession tunerSession : mAidlTunerSessions) {
            try {
                runnable.run(tunerSession.mCallback);
            } catch (DeadObjectException ex) {
                // The other side died without calling close(), so just purge it from our
                // records.
                // The other side died without calling close(), so just purge it from our records.
                Slog.e(TAG, "Removing dead TunerSession");
                mAidlTunerSessions.remove(tunerSession);
                if (deadSessions == null) {
                    deadSessions = new ArrayList<>();
                }
                deadSessions.add(tunerSession);
            } catch (RemoteException ex) {
                Slog.e(TAG, "Failed to invoke ITunerCallback: ", ex);
            }
        }
        if (deadSessions != null) {
            mAidlTunerSessions.removeAll(deadSessions);
        }
    }

    public android.hardware.radio.ICloseHandle addAnnouncementListener(@NonNull int[] enabledTypes,