sc/source/core/tool/interpr8.cxx |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 0f5e930fffbe2151ffadc8461449e55015617f65
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu Mar 26 15:46:07 2020 +0000
Commit:     Eike Rathke <er...@redhat.com>
CommitDate: Thu Mar 26 22:49:31 2020 +0100

    tdf#131380 crash on loading specific xlsx document
    
    mpPerIdx is null, because bEDS is true, assume 0 in this case
    
    Change-Id: I44c2433b0de57a28cece6b9b01ba543bdc3cb8d3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91145
    Tested-by: Jenkins
    Reviewed-by: Eike Rathke <er...@redhat.com>

diff --git a/sc/source/core/tool/interpr8.cxx b/sc/source/core/tool/interpr8.cxx
index 278e253531ec..2e15c142290c 100644
--- a/sc/source/core/tool/interpr8.cxx
+++ b/sc/source/core/tool/interpr8.cxx
@@ -1002,17 +1002,18 @@ void 
ScETSForecastCalculation::GetETSPredictionIntervals( const ScMatrixRef& rTM
         // fill array with forecasts, with RandDev() added to xScenRange
         if ( bAdditive )
         {
+            double nPIdx = !bEDS ? mpPerIdx[mnCount - mnSmplInPrd] : 0.0;
             // calculation based on additive model
             xScenRange[ 0 ] = mpBase[ mnCount - 1 ] + mpTrend[ mnCount - 1 ] +
-                              mpPerIdx[ mnCount - mnSmplInPrd ] +
+                              nPIdx +
                               RandDev();
             aPredictions[ 0 ][ k ] = xScenRange[ 0 ];
-            xScenBase[ 0 ] = mfAlpha * ( xScenRange[ 0 ] - mpPerIdx[ mnCount - 
mnSmplInPrd ] ) +
+            xScenBase[ 0 ] = mfAlpha * ( xScenRange[ 0 ] - nPIdx ) +
                              ( 1 - mfAlpha ) * ( mpBase[ mnCount - 1 ] + 
mpTrend[ mnCount - 1 ] );
             xScenTrend[ 0 ] = mfGamma * ( xScenBase[ 0 ] - mpBase[ mnCount - 1 
] ) +
                               ( 1 - mfGamma ) * mpTrend[ mnCount - 1 ];
             xScenPerIdx[ 0 ] = mfBeta * ( xScenRange[ 0 ] - xScenBase[ 0 ] ) +
-                               ( 1 - mfBeta ) * mpPerIdx[ mnCount - 
mnSmplInPrd ];
+                               ( 1 - mfBeta ) * nPIdx;
             for ( SCSIZE i = 1; i < nSize; i++ )
             {
                 double fPerIdx;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to