summaryrefslogtreecommitdiff
path: root/sc/source/core
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2015-12-01 14:09:02 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-12-03 12:21:43 +0000
commite389e2b2d9bc87e451628e6f3f227d0eb781cf8b (patch)
tree5fd829ea984de85a7d80c6b585fdb3edb3cf28b4 /sc/source/core
parentbf994b210dc8166486cca622589046427bd62758 (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.cxx10
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