summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Leon Scroggins III <scroggo@google.com> 2022-01-12 11:42:05 -0500
committer Leon Scroggins III <scroggo@google.com> 2022-01-12 11:53:28 -0500
commitae16b80b779db790e100ebe6e9d292b96dc04c9c (patch)
tree7a1afcc0ef5e3c6e443d1326ee2e76a10df08a28
parent1df8d38a3029b4f4da1a20a099936b37b510c4d1 (diff)
RegionSamplingListener: Treat empty Rect as BAD_VALUE
The Rect will eventually be merged with other listeners to create an area of the screen to capture. If the area is empty, this will result in trying to create an empty texture, which will fail and hit a LOG_ALWAYS_FATAL. This means that mDescriptors will only contain non-empty Rects; if mDescriptors is empty, the RegionSamplingThread will not attempt to do a capture. Bug: 206415266 Test: make Change-Id: Ib395a7627feba73bb9e4ca5f38aebd675515e506
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 8db974ed0e..4252fdf61b 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1609,7 +1609,7 @@ status_t SurfaceFlinger::getCompositionPreference(
status_t SurfaceFlinger::addRegionSamplingListener(const Rect& samplingArea,
const sp<IBinder>& stopLayerHandle,
const sp<IRegionSamplingListener>& listener) {
- if (!listener || samplingArea == Rect::INVALID_RECT) {
+ if (!listener || samplingArea == Rect::INVALID_RECT || samplingArea.isEmpty()) {
return BAD_VALUE;
}