diff options
author | Eike Rathke <erack@redhat.com> | 2012-07-03 21:40:42 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2012-07-03 21:40:42 +0200 |
commit | 2bf5edb1893df2d253ea0b7cf20f3bb7c62ae7f1 (patch) | |
tree | 967e2da7d8203ccdec62ea9f58f2848ae71b413d | |
parent | 2c46368432bd4f1bd86c7f3fb6c25ec5ad05dee7 (diff) |
do not attempt to compile running formula cell (fdo#51601 related)
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 was responsible for the crash. Though import
changed and this did not crash anymore on opening the testcase documents, the
questionable code is still wrong and therefor removed.
-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 338b0ab85aab..c4846c092d25 100644 --- a/sc/source/core/data/cell.cxx +++ b/sc/source/core/data/cell.cxx @@ -1435,7 +1435,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. @@ -1444,12 +1446,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 - rtl::OUString aFormula = aResult.GetHybridFormula(); - aResult.SetHybridFormula( rtl::OUString() ); - Compile( aFormula ); - InterpretTail( eTailParam ); + OSL_FAIL( "ScFormulaCell::Interpret: no UPN, no error, no token, but hybrid formula string" ); return; } CompileTokenArray(); |