From 9a85809c255b17c009bd5b1be11e2bb666fb1b67 Mon Sep 17 00:00:00 2001 From: Rupesh Bansal Date: Thu, 17 Mar 2022 15:06:21 +0000 Subject: [PATCH] When a Virtual Display is plugged in, we create a corresponding surface whose mutation should be owned by mSyncRoot(Owned by DisplayManagerService). However, there is an operation of getting the defaultSize of this Display which is performed without honouring the mSyncRoot. Bug: 211153738 Test: Manual Change-Id: I5bedf0f25dc4635d828b96312f7f799fb9ed321c --- .../core/java/com/android/server/display/DisplayDevice.java | 2 +- .../java/com/android/server/display/DisplayManagerService.java | 2 +- .../java/com/android/server/display/VirtualDisplayAdapter.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/display/DisplayDevice.java b/services/core/java/com/android/server/display/DisplayDevice.java index 311fa7c169583..76d71e2b968ab 100644 --- a/services/core/java/com/android/server/display/DisplayDevice.java +++ b/services/core/java/com/android/server/display/DisplayDevice.java @@ -131,7 +131,7 @@ abstract class DisplayDevice { * Only used for mirroring started from MediaProjection. */ @Nullable - public Point getDisplaySurfaceDefaultSize() { + public Point getDisplaySurfaceDefaultSizeLocked() { return null; } diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index e21edc9c44681..e4c12e634a283 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -3880,8 +3880,8 @@ public final class DisplayManagerService extends SystemService { if (device == null) { return null; } + return device.getDisplaySurfaceDefaultSizeLocked(); } - return device.getDisplaySurfaceDefaultSize(); } @Override diff --git a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java index ea313743d28da..dde8831090df6 100644 --- a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java +++ b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java @@ -302,7 +302,7 @@ public class VirtualDisplayAdapter extends DisplayAdapter { } @Override - public Point getDisplaySurfaceDefaultSize() { + public Point getDisplaySurfaceDefaultSizeLocked() { if (mSurface == null) { return null; }