Resolves: tdf#95748 no group interpreter when calculations are running
Change-Id: I17283fc5e39da2d7222c302dd63522df69d0ad96
(cherry picked from commit d46203b55d92185ab2c1d3ac79761100d26aaee3)
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index b37fbaa3..9079d56 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -1551,15 +1551,24 @@ void ScFormulaCell::Interpret()
}
else
{
#if DEBUG_CALCULATION
aDC.enterGroup();
#endif
bool bGroupInterpreted = InterpretFormulaGroup();
#if DEBUG_CALCULATION
aDC.leaveGroup();
#endif
if (!bGroupInterpreted)
// 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 DEBUG_CALCULATION
aDC.enterGroup();
bool bGroupInterpreted = InterpretFormulaGroup();
aDC.leaveGroup();
if (!bGroupInterpreted)
InterpretTail( SCITP_NORMAL);
#else
if (!InterpretFormulaGroup())
InterpretTail( SCITP_NORMAL);
#endif
}
}
// While leaving a recursion or iteration stack, insert its cells to the