summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2012-07-03 12:51:53 +0200
committerEike Rathke <erack@redhat.com>2012-07-03 13:47:54 +0200
commite031258c7689219c64c030490c123c0e2544b91a (patch)
tree6d09483c6bff74a88e73611f3e19f5dea339b8a6
parentae14f3587e091cfdb3ceca0e744e715ac13d7fac (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.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 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();