chart2/source/view/charttypes/VSeriesPlotter.cxx | 67 ++++++++++++----------- 1 file changed, 36 insertions(+), 31 deletions(-)
New commits: commit eca99b2dec0219893eaefa231b789cf6bab838ac Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Jul 15 21:42:04 2019 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Jul 16 13:32:15 2019 +0200 cid#1448243 Using invalid iterator return early on error paths Change-Id: I5d4f05585bb8c4b7d3fbe6824b8aa97785098ec5 Reviewed-on: https://gerrit.libreoffice.org/75662 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 835c19a449ad..e95961677d42 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -1605,41 +1605,46 @@ void VSeriesPlotter::setTimeResolutionOnXAxis( long TimeResolution, const Date& long VSeriesPlotter::calculateTimeResolutionOnXAxis() { long nRet = css::chart::TimeUnit::YEAR; - if( m_pExplicitCategoriesProvider ) - { - const std::vector< double >& rDateCategories = m_pExplicitCategoriesProvider->getDateCategories(); - Date aNullDate(30,12,1899); - if (m_apNumberFormatterWrapper) - aNullDate = m_apNumberFormatterWrapper->getNullDate(); - if( !rDateCategories.empty() ) - { - std::vector< double >::const_iterator aIt = rDateCategories.begin(), aEnd = rDateCategories.end(); - aIt = std::find_if(aIt, aEnd, [](const double& rDateCategory) { return !rtl::math::isNan(rDateCategory); }); + if (!m_pExplicitCategoriesProvider) + return nRet; - Date aPrevious(aNullDate); aPrevious.AddDays(rtl::math::approxFloor(*aIt)); - ++aIt; - for(;aIt!=aEnd;++aIt) - { - if (rtl::math::isNan(*aIt)) - continue; + const std::vector<double>& rDateCategories = m_pExplicitCategoriesProvider->getDateCategories(); + if (rDateCategories.empty()) + return nRet; - Date aCurrent(aNullDate); aCurrent.AddDays(rtl::math::approxFloor(*aIt)); - if( nRet == css::chart::TimeUnit::YEAR ) - { - if( DateHelper::IsInSameYear( aPrevious, aCurrent ) ) - nRet = css::chart::TimeUnit::MONTH; - } - if( nRet == css::chart::TimeUnit::MONTH ) - { - if( DateHelper::IsInSameMonth( aPrevious, aCurrent ) ) - nRet = css::chart::TimeUnit::DAY; - } - if( nRet == css::chart::TimeUnit::DAY ) - break; - aPrevious=aCurrent; - } + std::vector<double>::const_iterator aIt = rDateCategories.begin(), aEnd = rDateCategories.end(); + + aIt = std::find_if(aIt, aEnd, [](const double& rDateCategory) { return !rtl::math::isNan(rDateCategory); }); + if (aIt == aEnd) + return nRet; + + Date aNullDate(30,12,1899); + if (m_apNumberFormatterWrapper) + aNullDate = m_apNumberFormatterWrapper->getNullDate(); + + Date aPrevious(aNullDate); aPrevious.AddDays(rtl::math::approxFloor(*aIt)); + ++aIt; + for(;aIt!=aEnd;++aIt) + { + if (rtl::math::isNan(*aIt)) + continue; + + Date aCurrent(aNullDate); aCurrent.AddDays(rtl::math::approxFloor(*aIt)); + if( nRet == css::chart::TimeUnit::YEAR ) + { + if( DateHelper::IsInSameYear( aPrevious, aCurrent ) ) + nRet = css::chart::TimeUnit::MONTH; + } + if( nRet == css::chart::TimeUnit::MONTH ) + { + if( DateHelper::IsInSameMonth( aPrevious, aCurrent ) ) + nRet = css::chart::TimeUnit::DAY; } + if( nRet == css::chart::TimeUnit::DAY ) + break; + aPrevious=aCurrent; } + return nRet; } double VSeriesPlotter::getMinimumX() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits