summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2012-07-03 21:40:42 +0200
committerEike Rathke <erack@redhat.com>2012-07-03 21:40:42 +0200
commit2bf5edb1893df2d253ea0b7cf20f3bb7c62ae7f1 (patch)
tree967e2da7d8203ccdec62ea9f58f2848ae71b413d /sc
parent2c46368432bd4f1bd86c7f3fb6c25ec5ad05dee7 (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.
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/data/cell.cxx11
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();