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

Commit 94c66886 authored by Philip P. Moltmann's avatar Philip P. Moltmann Committed by android-build-merger
Browse files

Merge "Safeguard against uncommon scenarios when pruning" into oc-dev

am: 20d36c70

Change-Id: I447e82c5f9b137279dc03aeb50f65e143c8050de
parents 3df94ce0 20d36c70
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -621,16 +621,17 @@ final class AutofillManagerServiceImpl {
        @Override
        protected Void doInBackground(Void... ignored) {
            int numSessionsToRemove;
            ArrayMap<IBinder, Integer> sessionsToRemove;

            SparseArray<IBinder> sessionsToRemove;

            synchronized (mLock) {
                numSessionsToRemove = mSessions.size();
                sessionsToRemove = new ArrayMap<>(numSessionsToRemove);
                sessionsToRemove = new SparseArray<>(numSessionsToRemove);

                for (int i = 0; i < numSessionsToRemove; i++) {
                    Session session = mSessions.valueAt(i);

                    sessionsToRemove.put(session.getActivityTokenLocked(), session.id);
                    sessionsToRemove.put(session.id, session.getActivityTokenLocked());
                }
            }

@@ -640,7 +641,7 @@ final class AutofillManagerServiceImpl {
            for (int i = 0; i < numSessionsToRemove; i++) {
                try {
                    // The activity manager cannot resolve activities that have been removed
                    if (am.getActivityClassForToken(sessionsToRemove.keyAt(i)) != null) {
                    if (am.getActivityClassForToken(sessionsToRemove.valueAt(i)) != null) {
                        sessionsToRemove.removeAt(i);
                        i--;
                        numSessionsToRemove--;
@@ -652,9 +653,10 @@ final class AutofillManagerServiceImpl {

            synchronized (mLock) {
                for (int i = 0; i < numSessionsToRemove; i++) {
                    Session sessionToRemove = mSessions.get(sessionsToRemove.valueAt(i));
                    Session sessionToRemove = mSessions.get(sessionsToRemove.keyAt(i));

                    if (sessionToRemove != null) {
                    if (sessionToRemove != null && sessionsToRemove.valueAt(i)
                            == sessionToRemove.getActivityTokenLocked()) {
                        if (sessionToRemove.isSavingLocked()) {
                            if (sVerbose) {
                                Slog.v(TAG, "Session " + sessionToRemove.id + " is saving");
+9 −4
Original line number Diff line number Diff line
@@ -1371,10 +1371,15 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        pw.print(prefix); pw.print("id: "); pw.println(id);
        pw.print(prefix); pw.print("uid: "); pw.println(uid);
        pw.print(prefix); pw.print("mActivityToken: "); pw.println(mActivityToken);
        pw.print(prefix); pw.print("mResponses: "); pw.println(mResponses.size());
        pw.print(prefix); pw.print("mResponses: ");
        if (mResponses == null) {
            pw.println("null");
        } else {
            pw.println(mResponses.size());
            for (int i = 0; i < mResponses.size(); i++) {
            pw.print(prefix2); pw.print('#'); pw.print(i); pw.print(' ');
                pw.println(mResponses.valueAt(i));
                pw.print(prefix2); pw.print('#'); pw.print(i);
                pw.print(' '); pw.println(mResponses.valueAt(i));
            }
        }
        pw.print(prefix); pw.print("mCurrentViewId: "); pw.println(mCurrentViewId);
        pw.print(prefix); pw.print("mViewStates size: "); pw.println(mViewStates.size());