diff options
author | Eike Rathke <erack@redhat.com> | 2015-12-01 14:09:02 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-12-03 12:21:43 +0000 |
commit | e389e2b2d9bc87e451628e6f3f227d0eb781cf8b (patch) | |
tree | 5fd829ea984de85a7d80c6b585fdb3edb3cf28b4 /sc/source/core | |
parent | bf994b210dc8166486cca622589046427bd62758 (diff) |
Resolves: tdf#95748 no group interpreter when calculations are running
(cherry picked from commit d46203b55d92185ab2c1d3ac79761100d26aaee3)
Conflicts:
sc/source/core/data/formulacell.cxx
Change-Id: I17283fc5e39da2d7222c302dd63522df69d0ad96
Reviewed-on: https://gerrit.libreoffice.org/20328
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc/source/core')
-rw-r--r-- | sc/source/core/data/formulacell.cxx | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index 1bb5e4ce71d6..11d56f39fd2a 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -1479,8 +1479,16 @@ void ScFormulaCell::Interpret() } else { - if ( ! InterpretFormulaGroup() ) + // Do not attempt to interpret a group when calculations are already + // running, otherwise we may run into a circular reference hell. See + // tdf#95748 + if (rRecursionHelper.GetRecursionCount()) InterpretTail( SCITP_NORMAL); + else + { + if (!InterpretFormulaGroup()) + InterpretTail( SCITP_NORMAL); + } } // While leaving a recursion or iteration stack, insert its cells to the |