From 32c54dfdac7663897de1c88954307d46d4128537 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 27 Mar 2018 17:37:24 +0200 Subject: [PATCH] QmlProfiler: Fix some number conversion issues Qt containers have int as size type, while std containers have size_t. We can use auto and decltype to deal with this. Also, memcpy and malloc expect size_t, not int. Change-Id: Id2942d14978c8a15f72967962d551ddb20905471 Reviewed-by: Tobias Hunger --- src/plugins/qmlprofiler/qmlevent.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/plugins/qmlprofiler/qmlevent.h b/src/plugins/qmlprofiler/qmlevent.h index 9c680e95bb9..5f17d202f4a 100644 --- a/src/plugins/qmlprofiler/qmlevent.h +++ b/src/plugins/qmlprofiler/qmlevent.h @@ -240,7 +240,7 @@ private: void assignData(const QmlEvent &other) { if (m_dataType & External) { - int length = m_dataLength * (other.m_dataType / 8); + size_t length = m_dataLength * (other.m_dataType / 8); m_data.external = malloc(length); memcpy(m_data.external, other.m_data.external, length); } else { @@ -278,8 +278,9 @@ private: void assignNumbers(const Container &numbers) { Number *data; - m_dataLength = squeezable(numbers.size()) ? - static_cast(numbers.size()) : std::numeric_limits::max(); + const auto size = numbers.size(); + m_dataLength = squeezable(size) ? + static_cast(size) : std::numeric_limits::max(); if (m_dataLength > sizeof(m_data) / sizeof(Number)) { if (squeeze(numbers)) return;