mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
workgroups: fix program/kernel object leak (#1775)
`create_single_kernel_helper` is called in a loop, overwriting the objects contained in the wrapper classes. The wrapper class is not aware of this, as the overwriting happens through its `operator&`. Move the wrapper objects into the loop, so that the contained objects get released as soon as the program and kernel objects are no longer needed. Signed-off-by: Sven van Haastregt <sven.vanhaastregt@arm.com>
This commit is contained in:
committed by
GitHub
parent
845ec694bb
commit
9b0f78549a
@@ -221,8 +221,6 @@ int do_test_work_group_suggested_local_size(
|
||||
bool (*skip_cond)(size_t), size_t start, size_t end, size_t incr,
|
||||
cl_ulong max_local_mem_size, size_t global_work_offset[], num_dims dim)
|
||||
{
|
||||
clProgramWrapper scan_program;
|
||||
clKernelWrapper scan_kernel;
|
||||
int err;
|
||||
size_t test_values[] = { 1, 1, 1 };
|
||||
std::string kernel_names[6] = {
|
||||
@@ -244,6 +242,8 @@ int do_test_work_group_suggested_local_size(
|
||||
for (int kernel_num = 0; kernel_num < 6; kernel_num++)
|
||||
{
|
||||
if (max_local_mem_size < local_mem_size[kernel_num]) continue;
|
||||
clProgramWrapper scan_program;
|
||||
clKernelWrapper scan_kernel;
|
||||
// Create the kernel
|
||||
err = create_single_kernel_helper(
|
||||
context, &scan_program, &scan_kernel, 1,
|
||||
|
||||
Reference in New Issue
Block a user