Skip to content

Commit 11adfb8

Browse files
sophimaopcolberg
authored andcommitted
mem: resolve memory leak in clCreateImage
1 parent 64928de commit 11adfb8

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/acl_mem.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,22 @@ CL_API_ENTRY cl_int CL_API_CALL clReleaseMemObjectIntelFPGA(cl_mem mem) {
198198
--mem->fields.buffer_objs.parent->fields.buffer_objs.num_subbuffers;
199199
clReleaseMemObject(mem->fields.buffer_objs.parent);
200200
} else {
201+
if (is_image(mem)) {
202+
if (mem->fields.image_objs.image_format != NULL) {
203+
acl_free(mem->fields.image_objs.image_format);
204+
}
205+
if (mem->fields.image_objs.image_desc != NULL) {
206+
if (mem->fields.image_objs.image_desc->buffer != NULL) {
207+
clReleaseMemObject(mem->fields.image_objs.image_desc->buffer);
208+
mem->fields.image_objs.image_desc->buffer = NULL;
209+
}
210+
if (mem->fields.image_objs.image_desc->mem_object != NULL) {
211+
clReleaseMemObject(mem->fields.image_objs.image_desc->mem_object);
212+
mem->fields.image_objs.image_desc->mem_object = NULL;
213+
}
214+
acl_free(mem->fields.image_objs.image_desc);
215+
}
216+
}
201217
// The only case wehre mem->region->is_user_provided && mem->host_mem.raw
202218
// != NULL is when user creates a buffer with CL_MEM_USE_HOST_PTR set and
203219
// the pointer is allocated with clSVMAlloc.

0 commit comments

Comments
 (0)