[Libreoffice-commits] core.git: Branch 'feature/calc-parallel' - 3 commits - sc/source

Tor Lillqvist tml at collabora.com
Mon Oct 16 15:46:55 UTC 2017


 sc/source/core/data/formulacell.cxx |    2 +-
 sc/source/core/tool/token.cxx       |    2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 05934bd862e74dd420b6b5d691ce0d712509c4fd
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Oct 16 18:40:51 2017 +0300

    Add OFFSET to blacklist for threaded calculation
    
    Change-Id: Ia1aaf40aa4e8e6f41ca190272365528bf37bf130

diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index fd0adcb030b3..ec8f67b4b980 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -1341,6 +1341,7 @@ void ScTokenArray::CheckToken( const FormulaToken& r )
     static const std::set<OpCode> aThreadedCalcBlackList({
         ocIndirect,
         ocMacro,
+        ocOffset,
         ocTableOp
     });
 
commit 4a781ce705bd47d0a91b3da404da4a601f845791
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Oct 16 18:31:07 2017 +0300

    Add INDIRECT to blacklist for threaded calculation
    
    Change-Id: I9a2066c396802551c3eda2c8db32b6d1a4171dfd

diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index bbd6063dfff8..fd0adcb030b3 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -1339,6 +1339,7 @@ bool ScTokenArray::AddFormulaToken(
 void ScTokenArray::CheckToken( const FormulaToken& r )
 {
     static const std::set<OpCode> aThreadedCalcBlackList({
+        ocIndirect,
         ocMacro,
         ocTableOp
     });
commit 343f3455ca0686eca392102155af343e52354794
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Oct 16 18:28:24 2017 +0300

    Check whether ScTokenArray::CheckToken() has disabled threading of the group
    
    Otherwise the aThreadedCalcBlackList check in CheckToken() has no
    effect, we would still attempt the threaded code path.
    
    Change-Id: I08dc2dd174459615ab8a11dbb819e39fc5437d10

diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index 36c941fed7f3..f8704821588a 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -4345,7 +4345,7 @@ bool ScFormulaCell::InterpretFormulaGroup()
         return false;
     }
 
-    if (!bThreadingProhibited && !ScCalcConfig::isOpenCLEnabled() && officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::get())
+    if (!bThreadingProhibited && !ScCalcConfig::isOpenCLEnabled() && pCode->GetVectorState() != FormulaVectorDisabledNotInSubSet && officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::get())
     {
         // iterate over code in the formula ...
         // ensure all input is pre-calculated -


More information about the Libreoffice-commits mailing list