From e0060025287b0c369be8d046cf826be54b339dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20L=C3=BCtke=20Dreimann?= Date: Mon, 29 Aug 2022 18:13:35 +0200 Subject: [PATCH] fixed memory leak in opencl --- repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc b/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc index e94253e3a9..0128742964 100644 --- a/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc +++ b/repos/hello_gpgpu/src/hello_gpgpu/CL/cl.cc @@ -868,8 +868,15 @@ clSetKernelArg(cl_kernel kernel, } else { - // set buffer config struct buffer_config& bc = kc->buffConfigs[arg_index]; + + // if we overwrite an old config, free the old one + if(bc.buffer != nullptr) + { + g_cl_genode->free(bc.buffer); + } + + // set buffer config bc.buffer = g_cl_genode->alloc(arg_size); // alloc shared mem bc.buffer_size = (uint32_t)arg_size; bc.non_pointer_type = true;