[Libreoffice-commits] core.git: Branch 'feature/calc-pluggable-opencl' - sc/inc sc/source

Kohei Yoshida kohei.yoshida at collabora.com
Fri Sep 13 08:33:25 PDT 2013


 sc/inc/formulagroup.hxx                  |    3 +--
 sc/source/core/opencl/formulagroupcl.cxx |    3 ---
 sc/source/core/tool/formulagroup.cxx     |   13 ++++++++++++-
 3 files changed, 13 insertions(+), 6 deletions(-)

New commits:
commit d4a74de62dd0336ad7d3a21980976d520b0f0105
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Fri Sep 13 11:34:52 2013 -0400

    More sensible way to handle software interpreter invocation.
    
    Change-Id: Iea44ec03ce5b779558a8f5e762d0428d90f2334d

diff --git a/sc/inc/formulagroup.hxx b/sc/inc/formulagroup.hxx
index f57b237..f4cbbdb 100644
--- a/sc/inc/formulagroup.hxx
+++ b/sc/inc/formulagroup.hxx
@@ -61,8 +61,7 @@ class SC_DLLPUBLIC FormulaGroupInterpreter
 class SC_DLLPUBLIC FormulaGroupInterpreterSoftware : public FormulaGroupInterpreter
 {
 public:
-    FormulaGroupInterpreterSoftware() :
-        FormulaGroupInterpreter() {}
+    FormulaGroupInterpreterSoftware();
     virtual ~FormulaGroupInterpreterSoftware() {}
 
     virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat);
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx
index d958b1b..61d9944 100644
--- a/sc/source/core/opencl/formulagroupcl.cxx
+++ b/sc/source/core/opencl/formulagroupcl.cxx
@@ -1072,9 +1072,6 @@ extern "C" {
 
 SAL_DLLPUBLIC_EXPORT sc::FormulaGroupInterpreter* SAL_CALL createFormulaGroupOpenCLInterpreter()
 {
-    if (getenv("SC_SOFTWARE"))
-        return NULL;
-
 #if USE_GROUNDWATER_INTERPRETER
     if (getenv("SC_GROUNDWATER"))
         return new sc::opencl::FormulaGroupInterpreterGroundwater();
diff --git a/sc/source/core/tool/formulagroup.cxx b/sc/source/core/tool/formulagroup.cxx
index 3b929fa..1a40b15 100644
--- a/sc/source/core/tool/formulagroup.cxx
+++ b/sc/source/core/tool/formulagroup.cxx
@@ -16,6 +16,7 @@
 #include "scmatrix.hxx"
 
 #include "formula/vectortoken.hxx"
+#include "rtl/bootstrap.hxx"
 #include "config_features.h"
 
 #include <vector>
@@ -134,6 +135,10 @@ void fillMatrix( ScMatrix& rMat, size_t nCol, rtl_uString** pStrs, size_t nLen )
 
 }
 
+FormulaGroupInterpreterSoftware::FormulaGroupInterpreterSoftware() : FormulaGroupInterpreter()
+{
+}
+
 ScMatrixRef FormulaGroupInterpreterSoftware::inverseMatrix(const ScMatrix& /*rMat*/)
 {
     return ScMatrixRef();
@@ -359,7 +364,13 @@ FormulaGroupInterpreter *FormulaGroupInterpreter::getStatic()
     if ( !msInstance )
     {
 #if HAVE_FEATURE_OPENCL
-        if ( ScInterpreter::GetGlobalConfig().mbOpenCLEnabled )
+
+        bool bSoftware = false;
+        OUString aVal;
+        if (rtl::Bootstrap::get("SC_SOFTWARE", aVal) && aVal == "1")
+            bSoftware = true;
+
+        if ( ScInterpreter::GetGlobalConfig().mbOpenCLEnabled && !bSoftware)
         {
 #ifdef DISABLE_DYNLOADING
             msInstance = createFormulaGroupOpenCLInterpreter();


More information about the Libreoffice-commits mailing list