Skip to content

Commit eef5847

Browse files
aitor-lunargdancingmirrors
authored andcommitted
vulkan/cmd_queue: Use vk_strdup and free allocated string memory
Fixes: 9082715 ("vk/cmd_queue: generate copies for string struct members") Signed-off-by: Aitor Camacho <aitor@lunarg.com>
1 parent 4a08c82 commit eef5847

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/vulkan/util/vk_cmd_queue_gen.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ def get_struct_copy(builder, dst, src_name, src_type, types, parent_name=None, l
578578
tmp_src_name, member.name
579579
), member.type, types, tmp_src_name, member.len)
580580
elif member.len and member.len == 'null-terminated':
581-
builder.add("%s->%s = strdup(%s->%s);" % (tmp_dst_name, member.name, tmp_src_name, member.name))
581+
builder.add("%s->%s = vk_strdup(queue->alloc, %s->%s, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);" % (tmp_dst_name, member.name, tmp_src_name, member.name))
582582
elif member.name == 'pNext':
583583
get_pnext_member_copy(builder, tmp_dst_name, src_type, member, types)
584584

@@ -637,6 +637,8 @@ def get_struct_free(builder, field_name, nullable, struct_type, types, parent_na
637637
builder.add("}")
638638

639639
builder.add("vk_free(queue->alloc, %s);" % (local_member_name))
640+
elif member.len and member.len == 'null-terminated':
641+
builder.add("vk_free(queue->alloc, (void*)%s);" % (member_name))
640642

641643
elif member.name == 'pNext':
642644
get_pnext_member_free(builder, struct_type, types, member_name)

0 commit comments

Comments
 (0)