summaryrefslogtreecommitdiff
path: root/chart2/source/view/axes/TickmarkHelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'chart2/source/view/axes/TickmarkHelper.cxx')
-rw-r--r--chart2/source/view/axes/TickmarkHelper.cxx16
1 files changed, 9 insertions, 7 deletions
diff --git a/chart2/source/view/axes/TickmarkHelper.cxx b/chart2/source/view/axes/TickmarkHelper.cxx
index 4d1f48795fa7..9e2e2707c035 100644
--- a/chart2/source/view/axes/TickmarkHelper.cxx
+++ b/chart2/source/view/axes/TickmarkHelper.cxx
@@ -472,15 +472,17 @@ sal_Int32 TickmarkHelper::getMaxTickCount( sal_Int32 nDepth ) const
if( m_rIncrement.Distance<=0.0)
return 0;
- sal_Int32 nIntervalCount;
+ double fSub;
if(m_rIncrement.PostEquidistant )
- nIntervalCount = static_cast<sal_Int32>
- ( approxSub( m_fScaledVisibleMax, m_fScaledVisibleMin )
- / m_rIncrement.Distance );
+ fSub = approxSub( m_fScaledVisibleMax, m_fScaledVisibleMin );
else
- nIntervalCount = static_cast<sal_Int32>
- ( approxSub( m_rScale.Maximum, m_rScale.Minimum )
- / m_rIncrement.Distance );
+ fSub = approxSub( m_rScale.Maximum, m_rScale.Minimum );
+
+ if (!isFinite(fSub))
+ return 0;
+
+ sal_Int32 nIntervalCount = static_cast<sal_Int32>( fSub / m_rIncrement.Distance );
+
nIntervalCount+=3;
for(sal_Int32 nN=0; nN<nDepth-1; nN++)
{