Fix a memory leak in UidState.
Test: atest ProcessStatsTest Bug: 271320793 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:1635233cd4eabd0225769f37e737b770388bf340) Merged-In: I22e0e266a346f24c7ca0a95bf450320c8b68cbb1 Change-Id: I22e0e266a346f24c7ca0a95bf450320c8b68cbb1
This commit is contained in:
committed by
Cherrypicker Worker
parent
c82fa1ff23
commit
a8e06f0064
@@ -150,6 +150,7 @@ public final class UidState {
|
||||
public void resetSafely(long now) {
|
||||
mDurations.resetTable();
|
||||
mStartTime = now;
|
||||
mProcesses.removeIf(p -> !p.isInUse());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -186,4 +186,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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user