sc/source/core/opencl/op_statistical.cxx | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-)
New commits: commit c0c03aadb3ec25ca5c4c07f270164158b6667cc2 Author: Luboš Luňák <l.lu...@collabora.com> AuthorDate: Tue Nov 27 15:53:45 2018 +0100 Commit: Luboš Luňák <l.lu...@collabora.com> CommitDate: Tue Dec 4 16:07:39 2018 +0100 make OpenCL SLOPE() handle problems more gracefully It's silly to just return NaN just because the function can't handle something. If nothing else, at least a proper error should be reported (or in this case, the fallback to the core function will take care of it). Change-Id: I9c971082f4c5c9836318cf63d15fa7c278274273 Reviewed-on: https://gerrit.libreoffice.org/64244 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lu...@collabora.com> diff --git a/sc/source/core/opencl/op_statistical.cxx b/sc/source/core/opencl/op_statistical.cxx index 5278ad2b31f7..d18b3ffceec1 100644 --- a/sc/source/core/opencl/op_statistical.cxx +++ b/sc/source/core/opencl/op_statistical.cxx @@ -2548,6 +2548,7 @@ void OpStDevP::GenSlidingWindowFunction(std::stringstream &ss, void OpSlope::GenSlidingWindowFunction(std::stringstream &ss, const std::string &sSymName, SubArguments &vSubArguments) { + CHECK_PARAMETER_COUNT(2,2); ss << "\ndouble " << sSymName; ss << "_" << BinFuncName() << "("; for (size_t i = 0; i < vSubArguments.size(); i++) @@ -2567,12 +2568,6 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss, ss << " double fCount = 0.0;\n"; ss << " double argX = 0.0;\n"; ss << " double argY = 0.0;\n"; - if(vSubArguments.size() != 2) - { - ss << " return NAN;\n"; - ss << "}\n"; - return ; - } FormulaToken *pCur = vSubArguments[1]->GetFormulaToken(); FormulaToken *pCur1 = vSubArguments[0]->GetFormulaToken(); assert(pCur); @@ -2591,11 +2586,7 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss, pDVR1->GetArrayLength() ? pDVR->GetArrayLength(): pDVR1->GetArrayLength(); if(nCurWindowSize != nCurWindowSize1) - { - ss << " return NAN;\n"; - ss << "}\n"; - return ; - } + throw Unhandled(__FILE__, __LINE__); ss << " for (int i = "; if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed()) &&(!pDVR1->IsStartFixed() && pDVR1->IsEndFixed())) @@ -2626,13 +2617,7 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss, } else { - ss << "0; i < " << nCurWindowSize << "; i++)\n"; - ss << " {\n"; - ss << " break;\n"; - ss << " }"; - ss << " return NAN;\n"; - ss << "}\n"; - return ; + throw Unhandled(__FILE__, __LINE__); } ss << " argX = "; @@ -2701,8 +2686,7 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss, } else { - ss << " return NAN;\n"; - ss << "}\n"; + throw Unhandled(__FILE__, __LINE__); } } void OpSTEYX::GenSlidingWindowFunction(std::stringstream &ss, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits