From 3a5da035d06d5c6f6698988084af48a9a3907322 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Tue, 11 Apr 2023 16:46:58 +0000 Subject: [PATCH] Avoid overallocating array size. Since namespaces can just be a subset of jobs, don't allocate the ArrayList to fit all jobs of the app. Bug: 141645789 Test: atest CtsJobSchedulerTestCases Change-Id: I801ee2b47b1735f7994c3c121da5aba34ede4b3d --- .../java/com/android/server/job/JobSchedulerService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index aef9dd058658d..3aec8ba39a354 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -1588,12 +1588,12 @@ public class JobSchedulerService extends com.android.server.SystemService final ArrayMap> outMap = new ArrayMap<>(); synchronized (mLock) { ArraySet jobs = mJobs.getJobsByUid(uid); - // Write out for loop to avoid addAll() creating an Iterator. + // Write out for loop to avoid creating an Iterator. for (int i = jobs.size() - 1; i >= 0; i--) { final JobStatus job = jobs.valueAt(i); List outList = outMap.get(job.getNamespace()); if (outList == null) { - outList = new ArrayList(jobs.size()); + outList = new ArrayList<>(); outMap.put(job.getNamespace(), outList); } @@ -1606,7 +1606,7 @@ public class JobSchedulerService extends com.android.server.SystemService private List getPendingJobsInNamespace(int uid, @Nullable String namespace) { synchronized (mLock) { ArraySet jobs = mJobs.getJobsByUid(uid); - ArrayList outList = new ArrayList(jobs.size()); + ArrayList outList = new ArrayList<>(); // Write out for loop to avoid addAll() creating an Iterator. for (int i = jobs.size() - 1; i >= 0; i--) { final JobStatus job = jobs.valueAt(i);