diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index 5a2bca4e9e24..c3ee9323c3d2 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -3688,6 +3688,14 @@ public: mnGroupLength * sizeof(double), 0, NULL, NULL, &err); + if (err != CL_SUCCESS) + { + SAL_WARN("sc.opencl", "Dynamic formula compiler: OpenCL error: " << err); + mpResBuf = NULL; + return; + } + + err = clEnqueueUnmapMemObject(kEnv.mpkCmdQueue, mpCLResBuf, mpResBuf, 0, NULL, NULL); if (err != CL_SUCCESS) { SAL_WARN("sc.opencl", "Dynamic formula compiler: OpenCL error: " << err); @@ -3701,18 +3709,6 @@ public: return false; rDoc.SetFormulaResults(rTopPos, mpResBuf, mnGroupLength); - - // Obtain cl context - ::opencl::KernelEnv kEnv; - ::opencl::setKernelEnv(&kEnv); - - cl_int err = clEnqueueUnmapMemObject(kEnv.mpkCmdQueue, mpCLResBuf, mpResBuf, 0, NULL, NULL); - if (err != CL_SUCCESS) - { - SAL_WARN("sc.opencl", "Dynamic formula compiler: OpenCL error: " << err); - return false; - } - return true; } };