[Libreoffice-commits] .: Branch 'libreoffice-3-6' - sc/source

Eike Rathke erack at kemper.freedesktop.org
Tue Jul 3 12:30:57 PDT 2012


 sc/source/core/data/cell.cxx |   11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

New commits:
commit b6dcf00472b8f9573ff23ae8cadadeaad58ea4bb
Author: Eike Rathke <erack at redhat.com>
Date:   Tue Jul 3 21:28:46 2012 +0200

    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 3-6 did not crash on opening the testcase documents anymore, the
    questionable code is still wrong and therefor removed.

diff --git a/sc/source/core/data/cell.cxx b/sc/source/core/data/cell.cxx
index 5fbcbb9..2a3d807 100644
--- a/sc/source/core/data/cell.cxx
+++ b/sc/source/core/data/cell.cxx
@@ -1444,7 +1444,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.
@@ -1453,12 +1455,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();


More information about the Libreoffice-commits mailing list