Kaydet (Commit) d94b8cab authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Remove global variable SymbolTable::nR and make the code re-entrant.

Change-Id: Ie4cc8329398063b82b34cde5568686f48363ee1a
üst a1dc5e97
...@@ -133,10 +133,7 @@ class SC_DLLPUBLIC FormulaGroupInterpreter ...@@ -133,10 +133,7 @@ class SC_DLLPUBLIC FormulaGroupInterpreter
static void getOpenCLDeviceInfo(sal_Int32& rDeviceId, sal_Int32& rPlatformId); static void getOpenCLDeviceInfo(sal_Int32& rDeviceId, sal_Int32& rPlatformId);
#endif #endif
virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat) = 0; virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat) = 0;
virtual CompiledFormula* createCompiledFormula(ScDocument& rDoc, virtual CompiledFormula* createCompiledFormula( ScFormulaCellGroup& rGroup, ScTokenArray& rCode ) = 0;
const ScAddress& rTopPos,
ScFormulaCellGroup& rGroup,
ScTokenArray& rCode) = 0;
virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode) = 0; virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode) = 0;
}; };
...@@ -148,10 +145,7 @@ public: ...@@ -148,10 +145,7 @@ public:
virtual ~FormulaGroupInterpreterSoftware() {} virtual ~FormulaGroupInterpreterSoftware() {}
virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat) SAL_OVERRIDE; virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat) SAL_OVERRIDE;
virtual CompiledFormula* createCompiledFormula(ScDocument& rDoc, virtual CompiledFormula* createCompiledFormula( ScFormulaCellGroup& rGroup, ScTokenArray& rCode ) SAL_OVERRIDE;
const ScAddress& rTopPos,
ScFormulaCellGroup& rGroup,
ScTokenArray& rCode) SAL_OVERRIDE;
virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode) SAL_OVERRIDE; virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode) SAL_OVERRIDE;
}; };
......
...@@ -546,8 +546,8 @@ void ScFormulaCellGroup::compileOpenCLKernel() ...@@ -546,8 +546,8 @@ void ScFormulaCellGroup::compileOpenCLKernel()
if (meCalcState == sc::GroupCalcDisabled) if (meCalcState == sc::GroupCalcDisabled)
return; return;
mpCompiledFormula = sc::FormulaGroupInterpreter::getStatic()->createCompiledFormula( mpCompiledFormula =
*mpTopCell->GetDocument(), mpTopCell->aPos, *this, *mpCode); sc::FormulaGroupInterpreter::getStatic()->createCompiledFormula(*this, *mpCode);
meKernelState = sc::OpenCLKernelBinaryCreated; meKernelState = sc::OpenCLKernelBinaryCreated;
} }
......
...@@ -17,19 +17,12 @@ namespace sc { namespace opencl { ...@@ -17,19 +17,12 @@ namespace sc { namespace opencl {
class FormulaGroupInterpreterOpenCL : public FormulaGroupInterpreter class FormulaGroupInterpreterOpenCL : public FormulaGroupInterpreter
{ {
public: public:
FormulaGroupInterpreterOpenCL() : FormulaGroupInterpreterOpenCL();
FormulaGroupInterpreter() virtual ~FormulaGroupInterpreterOpenCL();
{
}
virtual ~FormulaGroupInterpreterOpenCL()
{
}
virtual ScMatrixRef inverseMatrix( const ScMatrix& rMat ) SAL_OVERRIDE; virtual ScMatrixRef inverseMatrix( const ScMatrix& rMat ) SAL_OVERRIDE;
virtual CompiledFormula* createCompiledFormula( ScDocument& rDoc, virtual CompiledFormula* createCompiledFormula(
const ScAddress& rTopPos, ScFormulaCellGroup& rGroup, ScTokenArray& rCode ) SAL_OVERRIDE;
ScFormulaCellGroup& rGroup,
ScTokenArray& rCode ) SAL_OVERRIDE;
virtual bool interpret( ScDocument& rDoc, const ScAddress& rTopPos, virtual bool interpret( ScDocument& rDoc, const ScAddress& rTopPos,
ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode ) SAL_OVERRIDE; ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode ) SAL_OVERRIDE;
}; };
......
...@@ -302,10 +302,8 @@ ScMatrixRef FormulaGroupInterpreterSoftware::inverseMatrix(const ScMatrix& /*rMa ...@@ -302,10 +302,8 @@ ScMatrixRef FormulaGroupInterpreterSoftware::inverseMatrix(const ScMatrix& /*rMa
return ScMatrixRef(); return ScMatrixRef();
} }
CompiledFormula* FormulaGroupInterpreterSoftware::createCompiledFormula(ScDocument& /* rDoc */, CompiledFormula* FormulaGroupInterpreterSoftware::createCompiledFormula(
const ScAddress& /* rTopPos */, ScFormulaCellGroup& /*rGroup*/, ScTokenArray& /*rCode*/ )
ScFormulaCellGroup& /* rGroup */,
ScTokenArray& /* rCode */)
{ {
return NULL; return NULL;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment