Give access to the DexOptHelper object in the onDexoptDone callback.

To make it easier to share data between methods.

Test: m
Bug: 251903639
Change-Id: Icaa3c885d8e0e5bf41c072e86f01ff331d20c493
This commit is contained in:
Martin Stjernholm
2023-01-14 18:40:36 +00:00
parent b1a79007d1
commit 82c70fb58c
2 changed files with 9 additions and 11 deletions

View File

@@ -86,7 +86,6 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -946,13 +945,10 @@ public final class DexOptHelper {
}
}
private static class DexoptDoneHandler implements ArtManagerLocal.DexoptDoneCallback {
@NonNull private final PackageManagerService mPm;
DexoptDoneHandler(@NonNull PackageManagerService pm) { mPm = pm; }
private class DexoptDoneHandler implements ArtManagerLocal.DexoptDoneCallback {
/**
* Called after every package dexopt operation done by {@link ArtManagerLocal}.
* Called after every package dexopt operation done by {@link ArtManagerLocal} (when ART
* Service is in use).
*/
@Override
public void onDexoptDone(@NonNull DexoptResult result) {
@@ -983,10 +979,8 @@ public final class DexOptHelper {
}
ArtManagerLocal artManager = new ArtManagerLocal(systemContext);
// There doesn't appear to be any checks that @NonNull is heeded, so use requireNonNull
// below to ensure we don't store away a null that we'll fail on later.
artManager.addDexoptDoneCallback(false /* onlyIncludeUpdates */,
Runnable::run, new DexoptDoneHandler(Objects.requireNonNull(pm)));
artManager.addDexoptDoneCallback(false /* onlyIncludeUpdates */, Runnable::run,
pm.getDexOptHelper().new DexoptDoneHandler());
LocalManagerRegistry.addManager(ArtManagerLocal.class, artManager);
artManager.scheduleBackgroundDexoptJob();

View File

@@ -2997,6 +2997,10 @@ public class PackageManagerService implements PackageSender, TestUtilityService
return mDexManager;
}
/*package*/ DexOptHelper getDexOptHelper() {
return mDexOptHelper;
}
/*package*/ DynamicCodeLogger getDynamicCodeLogger() {
return mDynamicCodeLogger;
}