From ce6c45d271a2e6dd6ec250222101dcec0af7800d Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Fri, 14 Oct 2022 15:04:10 +0200 Subject: [PATCH] BUILD: Fix some compilation issues with Qt files --- CMakeLists.txt | 3 ++- src/module/qt_window/qthelper.hh | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f31a4be3..164234d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,7 +85,8 @@ set(Clang_C_FLAGS -Wno-missing-variable-declarations -Wno-unknown-warning-option -Wno-declaration-after-statement - -fcolor-diagnostics + -Wno-covered-switch-default # We migh want to have a default even if everything is covered + -fcolor-diagnostics # Colors! ) set(Clang_CXX_FLAGS $<$<COMPILE_LANGUAGE:CXX>:-Wno-c++98-compat-pedantic> diff --git a/src/module/qt_window/qthelper.hh b/src/module/qt_window/qthelper.hh index 9ed45600..9012c6e5 100644 --- a/src/module/qt_window/qthelper.hh +++ b/src/module/qt_window/qthelper.hh @@ -90,7 +90,7 @@ private: Q_DISABLE_COPY(node_builder) mpv_node node_; - mpv_node_list *create_list(mpv_node *dst, bool is_map, int num) + mpv_node_list *create_list(mpv_node *dst, bool is_map, qsizetype num) { dst->format = is_map ? MPV_FORMAT_NODE_MAP : MPV_FORMAT_NODE_ARRAY; mpv_node_list *list = new mpv_node_list(); @@ -151,7 +151,10 @@ private: mpv_node_list *list = create_list(dst, false, qlist.size()); if (!list) goto fail; - list->num = qlist.size(); + const qsizetype qlist_size = qlist.size(); + if (qlist_size >= std::numeric_limits<int>::max()) + goto fail; + list->num = static_cast<int>(qlist_size); for (int n = 0; n < qlist.size(); n++) set(&list->values[n], qlist[n]); } else if (src.canConvert<QVariantMap>()) { @@ -159,7 +162,10 @@ private: mpv_node_list *list = create_list(dst, true, qmap.size()); if (!list) goto fail; - list->num = qmap.size(); + const qsizetype qmap_size = qmap.size(); + if (qmap_size >= std::numeric_limits<int>::max()) + goto fail; + list->num = static_cast<int>(qmap_size); for (int n = 0; n < qmap.size(); n++) { list->keys[n] = dup_qstring(qmap.keys()[n]); if (!list->keys[n]) { -- GitLab