summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2015-02-10 20:04:01 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-02-10 20:48:36 +0000
commitd419638be7062f291a59f039a7469455fc08d2df (patch)
tree286dad32d3a2915557d5acceebfb3e0613e3df77
parent736ee69868d2e98ea62c16e512ace3b080c5dd8f (diff)
Don't call clReleaseProgram() on the same program twice
If the clBuildProgram() failed, the lastSecondProgram variable kept as its value the already released program handle, and later we called clReleaseProgram() on it again. This is certainly wrong, and caused a crash at least with my OpenCL implementation. As such I am not sure if that lastOneProgram, lastSecondProgram etc dance is sane... Change-Id: Ic3454338a431ac49fafc11d0157609bc9ecd4d10 Reviewed-on: https://gerrit.libreoffice.org/14406 Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r--sc/source/core/opencl/formulagroupcl.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx
index afc19d428572..96d3dc12235b 100644
--- a/sc/source/core/opencl/formulagroupcl.cxx
+++ b/sc/source/core/opencl/formulagroupcl.cxx
@@ -3802,6 +3802,7 @@ void DynamicKernel::CreateKernel()
if (lastSecondProgram)
{
clReleaseProgram(lastSecondProgram);
+ lastSecondProgram = NULL;
}
if (::opencl::buildProgramFromBinary("",
&::opencl::gpuEnv, KernelHash.c_str(), 0))