Merge "Fix potential NPE when removing TaskOrganizerController" into rvc-dev am: b556cb7254

Change-Id: I5abb2c6eabfb5e3aee3de7cdb736570c46de836f
This commit is contained in:
TreeHugger Robot
2020-03-31 05:23:00 +00:00
committed by Automerger Merge Worker

View File

@@ -78,7 +78,9 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
synchronized (mGlobalLock) {
final TaskOrganizerState state = mTaskOrganizerStates.remove(
mTaskOrganizer.asBinder());
state.dispose();
if (state != null) {
state.dispose();
}
}
}
};
@@ -222,9 +224,20 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
@Override
public void unregisterTaskOrganizer(ITaskOrganizer organizer) {
final TaskOrganizerState state = mTaskOrganizerStates.remove(organizer.asBinder());
state.unlinkDeath();
state.dispose();
enforceStackPermission("unregisterTaskOrganizer()");
final long origId = Binder.clearCallingIdentity();
try {
synchronized (mGlobalLock) {
final TaskOrganizerState state = mTaskOrganizerStates.remove(organizer.asBinder());
if (state == null) {
return;
}
state.unlinkDeath();
state.dispose();
}
} finally {
Binder.restoreCallingIdentity(origId);
}
}
ITaskOrganizer getTaskOrganizer(int windowingMode) {