fix memory leak
authoryao <bitwangyaoyao@gmail.com>
Tue, 28 May 2013 10:07:41 +0000 (18:07 +0800)
committeryao <bitwangyaoyao@gmail.com>
Tue, 28 May 2013 10:07:41 +0000 (18:07 +0800)
modules/ocl/src/hog.cpp
modules/ocl/src/pyrlk.cpp

index ae74ed5..a351458 100644 (file)
@@ -1580,6 +1580,7 @@ static void openCLExecuteKernel_hog(Context *clCxt , const char **source, string
 {
     cl_kernel kernel = openCLGetKernelFromSource(clCxt, source, kernelName);
     size_t wave_size = queryDeviceInfo<WAVEFRONT_SIZE, size_t>(kernel);
+    openCLSafeCall(clReleaseKernel(kernel));
     if (wave_size <= 16)
     {
         char build_options[64];
index 3b6edf7..a3e65dd 100644 (file)
@@ -139,8 +139,9 @@ static void lkSparse_run(oclMat &I, oclMat &J,
             stringstream idxStr;
             idxStr << kernelName << "_C" << I.oclchannels() << "_D" << I.depth();
             cl_kernel kernel = openCLGetKernelFromSource(clCxt, &pyrlk, idxStr.str());
-
             int wave_size = queryDeviceInfo<WAVEFRONT_SIZE, int>(kernel);
+            openCLSafeCall(clReleaseKernel(kernel));
+
             static char opt[16] = {0};
             sprintf(opt, " -D WAVE_SIZE=%d", wave_size);