diff --git a/Telegram/SourceFiles/statistics/view/stack_linear_chart_common.cpp b/Telegram/SourceFiles/statistics/view/stack_linear_chart_common.cpp index b7727bd714..50b86284f1 100644 --- a/Telegram/SourceFiles/statistics/view/stack_linear_chart_common.cpp +++ b/Telegram/SourceFiles/statistics/view/stack_linear_chart_common.cpp @@ -83,6 +83,8 @@ PiePartData PiePartsPercentageByIndices( for (const auto &line : chartData.lines) { auto sum = ChartValue(0); for (auto i = xIndices.min; i <= xIndices.max; i++) { + const auto index = int(base::SafeRound(i)); + Assert(index >= 0 && index < line.y.size()); sum += line.y[i]; } if (linesFilter) { diff --git a/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp b/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp index c000d919b9..b5e7daa6b2 100644 --- a/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp +++ b/Telegram/SourceFiles/statistics/widgets/point_details_widget.cpp @@ -303,6 +303,7 @@ void PointDetailsWidget::setXIndex(int xIndex) { if (xIndex < 0) { return; } + Assert(xIndex < _chartData.x.size()); { constexpr auto kOneDay = 3600 * 24 * 1000; const auto timestamp = _chartData.x[xIndex]; @@ -328,6 +329,7 @@ void PointDetailsWidget::setXIndex(int xIndex) { = (_chartData.currency == Data::StatisticalCurrency::Credits); for (auto i = 0; i < _chartData.lines.size(); i++) { const auto &dataLine = _chartData.lines[i]; + Assert(xIndex < dataLine.y.size()); auto textLine = Line(); textLine.id = dataLine.id; if (_maxPercentageWidth) {