[wm] fix npe when removing trusted task overlays

Bug: 284898339
Test: add and remove game service overlay
Change-Id: I4f76e1e59f5284ad393397deec12f2d6bef5b7bb
This commit is contained in:
Vishnu Nair
2023-05-30 14:39:01 -07:00
parent 59fc320479
commit 7805bdb758

View File

@@ -8261,6 +8261,13 @@ public class WindowManagerService extends IWindowManager.Stub
@Override
public void addTrustedTaskOverlay(int taskId,
SurfaceControlViewHost.SurfacePackage overlay) {
if (overlay == null) {
throw new IllegalArgumentException("Invalid overlay passed in for task=" + taskId);
} else if (overlay.getSurfaceControl() == null
|| !overlay.getSurfaceControl().isValid()) {
throw new IllegalArgumentException(
"Invalid overlay surfacecontrol passed in for task=" + taskId);
}
synchronized (mGlobalLock) {
final Task task = mRoot.getRootTask(taskId);
if (task == null) {
@@ -8273,6 +8280,13 @@ public class WindowManagerService extends IWindowManager.Stub
@Override
public void removeTrustedTaskOverlay(int taskId,
SurfaceControlViewHost.SurfacePackage overlay) {
if (overlay == null) {
throw new IllegalArgumentException("Invalid overlay passed in for task=" + taskId);
} else if (overlay.getSurfaceControl() == null
|| !overlay.getSurfaceControl().isValid()) {
throw new IllegalArgumentException(
"Invalid overlay surfacecontrol passed in for task=" + taskId);
}
synchronized (mGlobalLock) {
final Task task = mRoot.getRootTask(taskId);
if (task == null) {