diff options
author | Eike Rathke <erack@redhat.com> | 2012-07-03 12:51:53 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2012-07-03 13:47:54 +0200 |
commit | e031258c7689219c64c030490c123c0e2544b91a (patch) | |
tree | 6d09483c6bff74a88e73611f3e19f5dea339b8a6 | |
parent | ae14f3587e091cfdb3ceca0e744e715ac13d7fac (diff) |
resolved fdo#51601 do not attempt to compile running formula cell
2fb377c19f8ae38e7ec649af1343bbd64b70a16b introduced compilation of
a formula cell while it is interpreted, ignoring the comment just above why
that does NOT work ...
This removes the portion that is responsible for the crash as a quick fix,
a more sophisticated solution might be needed to make the original
intention work.
Signed-off-by: Petr Mladek <pmladek@suse.cz>
Signed-off-by: Noel Power <nopower@suse.com>
Signed-off-by: Muthu Subramanian K <sumuthu@suse.com>
(cherry picked from commit be67632e9eb298af8a5582c0e06cad9218fa5b71)
-rw-r--r-- | sc/source/core/data/cell.cxx | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sc/source/core/data/cell.cxx b/sc/source/core/data/cell.cxx index 4ed94b9cfb76..29ecd68de1d8 100644 --- a/sc/source/core/data/cell.cxx +++ b/sc/source/core/data/cell.cxx @@ -1527,7 +1527,9 @@ void ScFormulaCell::InterpretTail( ScInterpretTailParameter eTailParam ) // #i11719# no UPN and no error and no token code but result string present // => interpretation of this cell during name-compilation and unknown names // => can't exchange underlying code array in CompileTokenArray() / - // Compile() because interpreter's token iterator would crash. + // Compile() because interpreter's token iterator would crash or pCode + // would be deleted twice if this cell was interpreted during + // compilation. // This should only be a temporary condition and, since we set an // error, if ran into it again we'd bump into the dirty-clearing // condition further down. @@ -1536,12 +1538,7 @@ void ScFormulaCell::InterpretTail( ScInterpretTailParameter eTailParam ) pCode->SetCodeError( errNoCode ); // This is worth an assertion; if encountered in daily work // documents we might need another solution. Or just confirm correctness. - OSL_FAIL( "ScFormulaCell::Interpret: no UPN, no error, no token, but string -> Try compiling it." ); - // Force Compilation - String aFormula = aResult.GetHybridFormula(); - aResult.SetHybridFormula( String() ); - Compile( aFormula ); - InterpretTail( eTailParam ); + OSL_FAIL( "ScFormulaCell::Interpret: no UPN, no error, no token, but hybrid formula string" ); return; } CompileTokenArray(); |