mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
vulkan/cmd_queue: Use vk_strdup and free allocated string memory
Fixes:9082715ab0("vk/cmd_queue: generate copies for string struct members") Reviewed-by: Karmjit Mahil <karmjit.mahil@igalia.com> Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com> Signed-off-by: Aitor Camacho <aitor@lunarg.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38634> (cherry picked from commit16c98f4f18)
This commit is contained in:
parent
1846c7cc9b
commit
5153a5d8c1
2 changed files with 4 additions and 2 deletions
|
|
@ -664,7 +664,7 @@
|
|||
"description": "vulkan/cmd_queue: Use vk_strdup and free allocated string memory",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "9082715ab014270fb8bdf555526d7e55a4890538",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -564,7 +564,7 @@ def get_struct_copy(dst, src_name, src_type, size, types, level=0):
|
|||
if member.len and member.len == 'struct-ptr':
|
||||
member_copies += get_struct_copy("%s->%s" % (tmp_dst_name, member.name), "%s->%s" % (tmp_src_name, member.name), member.type, 'sizeof(%s)' % member.type, types, level + 1)
|
||||
elif member.len and member.len == 'null-terminated':
|
||||
member_copies += "%s%s->%s = strdup(%s->%s);" % (indent_sameline, tmp_dst_name, member.name, tmp_src_name, member.name)
|
||||
member_copies += "%s%s->%s = vk_strdup(queue->alloc, %s->%s, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);" % (indent_sameline, tmp_dst_name, member.name, tmp_src_name, member.name)
|
||||
elif member.len:
|
||||
member_copies += get_array_member_copy(tmp_dst_name, tmp_src_name, member, level + 1)
|
||||
elif member.name == 'pNext':
|
||||
|
|
@ -586,6 +586,8 @@ def get_struct_free(field_name, struct_type, types):
|
|||
member_name = "%s ? %s->%s : NULL" % (field_name, field_name, member.name)
|
||||
if member.len and member.len != 'null-terminated':
|
||||
member_frees += "vk_free(queue->alloc, (void*)(%s));\n" % member_name
|
||||
if member.len and member.len == 'null-terminated':
|
||||
member_frees += "vk_free(queue->alloc, (void*)(%s));\n" % member_name
|
||||
elif member.name == 'pNext':
|
||||
member_frees += get_pnext_member_free(struct_type, types, member_name)
|
||||
return "%s %s\n" % (member_frees, struct_free)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue