aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Stratiienko <r.stratiienko@gmail.com>2021-04-01 15:52:54 +0300
committerRoman Stratiienko <r.stratiienko@gmail.com>2021-04-02 16:01:49 +0300
commit3f89182bb9dfbb537d88dc4c6d02d3efff138f53 (patch)
tree0ad218d7e621de2ff563f266d55e6b286a19982d
parent747747127f7918862e1299d76ebea352f68f14cc (diff)
downloaddrm_hwcomposer-3f89182bb9dfbb537d88dc4c6d02d3efff138f53.tar.gz
drm_hwcomposer: Fix client range selection logic
Original change aimed to fix clang-tidy checks, but accidentally it caused wrong client range selection. Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/53 Fixes: e2f2c929243f ("drm_hwcomposer: enable code analysis using clang-tidy") Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
-rw-r--r--backend/Backend.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/backend/Backend.cpp b/backend/Backend.cpp
index 16e2859..3505385 100644
--- a/backend/Backend.cpp
+++ b/backend/Backend.cpp
@@ -60,18 +60,19 @@ HWC2::Error Backend::ValidateDisplay(DrmHwcTwo::HwcDisplay *display,
} else {
std::tie(client_start, client_size) = GetClientLayers(display, z_map);
- size_t extra_client = (z_map.size() - client_size) - avail_planes;
+ int extra_client = int(z_map.size() - client_size) - int(avail_planes);
if (extra_client > 0) {
int start = 0;
size_t steps = 0;
if (client_size != 0) {
- size_t prepend = std::min((size_t)client_start, extra_client);
- size_t append = std::min(z_map.size() - (client_start + client_size),
- extra_client);
+ int prepend = std::min(client_start, extra_client);
+ int append = std::min(int(z_map.size()) -
+ int(client_start + client_size),
+ extra_client);
start = client_start - (int)prepend;
client_size += extra_client;
steps = 1 + std::min(std::min(append, prepend),
- z_map.size() - (start + client_size));
+ int(z_map.size()) - int(start + client_size));
} else {
client_size = extra_client;
steps = 1 + z_map.size() - extra_client;