Get fresh InProgress array in AttributedAppOp when adding/removing
Otherwise, a call to finish() and then start() might reallocate the array, and cause the reference to point to the old location of the array. Fixes: 208662370 Test: atest ForegroundModeAndActiveTest Change-Id: I7e754c067520765c00cc67cc310926e63bd0462d Merged-In: I7e754c067520765c00cc67cc310926e63bd0462d
This commit is contained in:
@@ -1314,6 +1314,7 @@ public class AppOpsService extends IAppOpsService.Stub {
|
|||||||
event.getAttributionFlags(), event.getAttributionChainId());
|
event.getAttributionFlags(), event.getAttributionChainId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
events = isRunning ? mInProgressEvents : mPausedInProgressEvents;
|
||||||
InProgressStartOpEvent newEvent = events.get(binders.get(i));
|
InProgressStartOpEvent newEvent = events.get(binders.get(i));
|
||||||
if (newEvent != null) {
|
if (newEvent != null) {
|
||||||
newEvent.numUnfinishedStarts += numPreviousUnfinishedStarts - 1;
|
newEvent.numUnfinishedStarts += numPreviousUnfinishedStarts - 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user