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

Commit 331a0b8d authored by Yu-Ting Tseng's avatar Yu-Ting Tseng Committed by Automerger Merge Worker
Browse files

Merge "Fix a memory leak in UidState." into udc-dev am: a5958f90

parents 0e78856b a5958f90
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -150,6 +150,7 @@ public final class UidState {
    public void resetSafely(long now) {
        mDurations.resetTable();
        mStartTime = now;
        mProcesses.removeIf(p -> !p.isInUse());
    }

    /**
+15 −0
Original line number Diff line number Diff line
@@ -156,4 +156,19 @@ public class ProcessStatsTest extends TestCase {
                        eq(0),
                        eq(APP_1_PROCESS_NAME));
    }

    @SmallTest
    public void testSafelyResetClearsProcessInUidState() throws Exception {
        ProcessStats processStats = new ProcessStats();
        ProcessState processState =
                processStats.getProcessStateLocked(
                        APP_1_PACKAGE_NAME, APP_1_UID, APP_1_VERSION, APP_1_PROCESS_NAME);
        processState.makeActive();
        UidState uidState = processStats.mUidStates.get(APP_1_UID);
        assertTrue(uidState.isInUse());
        processState.makeInactive();
        uidState.resetSafely(NOW_MS);
        processState.makeActive();
        assertFalse(uidState.isInUse());
    }
}