diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2016-07-12 19:30:53 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2016-07-12 20:01:25 +0000 |
commit | e9a1afbd3e12c6935cbacbff84b1b70fea0add85 (patch) | |
tree | f46663c1c4ed9f9d942c37ac76d165ae67a59550 /sc | |
parent | 37204431c68a4725b4539fa35e9fcea4fe94c166 (diff) |
tdf#100883 - opencl impls. that use SEH are still bad.
Amazingly we fell-back to the old calculation path for
crashes in older LibreOffices, might as well have this on master.
Change-Id: Ifc1de41c93329207d7a1917c736e361d840c2821
Reviewed-on: https://gerrit.libreoffice.org/27166
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/opencl/formulagroupcl.cxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index cc82df9ef2c6..6747bc90e2a8 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -4059,6 +4059,7 @@ DynamicKernel* DynamicKernel::create( const ScCalcConfig& rConfig, ScTokenArray& // OpenCLError used to go to the catch-all below, and not delete pDynamicKernel. Was that // intentional, should we not do it here then either? delete pDynamicKernel; + ::opencl::kernelFailures++; return nullptr; } catch (const Unhandled& uh) @@ -4068,6 +4069,7 @@ DynamicKernel* DynamicKernel::create( const ScCalcConfig& rConfig, ScTokenArray& // Unhandled used to go to the catch-all below, and not delete pDynamicKernel. Was that // intentional, should we not do it here then either? delete pDynamicKernel; + ::opencl::kernelFailures++; return nullptr; } catch (...) @@ -4075,6 +4077,7 @@ DynamicKernel* DynamicKernel::create( const ScCalcConfig& rConfig, ScTokenArray& // FIXME: Do we really want to catch random exceptions here? SAL_WARN("sc.opencl", "Dynamic formula compiler: unexpected exception"); // FIXME: Not deleting pDynamicKernel here!?, is that intentional? + ::opencl::kernelFailures++; return nullptr; } return pDynamicKernel; @@ -4185,21 +4188,25 @@ public: catch (const UnhandledToken& ut) { SAL_INFO("sc.opencl", "Dynamic formula compiler: UnhandledToken: " << ut.mMessage << " at " << ut.mFile << ":" << ut.mLineNumber); + ::opencl::kernelFailures++; return CLInterpreterResult(); } catch (const OpenCLError& oce) { SAL_WARN("sc.opencl", "Dynamic formula compiler: OpenCLError from " << oce.mFunction << ": " << ::opencl::errorString(oce.mError) << " at " << oce.mFile << ":" << oce.mLineNumber); + ::opencl::kernelFailures++; return CLInterpreterResult(); } catch (const Unhandled& uh) { SAL_INFO("sc.opencl", "Dynamic formula compiler: Unhandled at " << uh.mFile << ":" << uh.mLineNumber); + ::opencl::kernelFailures++; return CLInterpreterResult(); } catch (...) { SAL_WARN("sc.opencl", "Dynamic formula compiler: unexpected exception"); + ::opencl::kernelFailures++; return CLInterpreterResult(); } |