mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/preproc: Do not make a copy of the buffer before returning it.
This commit is contained in:
committed by
Henri Verbeet
parent
586d8c9a52
commit
4d8e2d658a
Notes:
Henri Verbeet
2025-08-22 21:11:30 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1693
@@ -823,7 +823,6 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
|
|||||||
static const struct vkd3d_shader_preprocess_info default_preprocess_info = {0};
|
static const struct vkd3d_shader_preprocess_info default_preprocess_info = {0};
|
||||||
struct preproc_ctx ctx = {0};
|
struct preproc_ctx ctx = {0};
|
||||||
char *source_name = NULL;
|
char *source_name = NULL;
|
||||||
void *output_code;
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
vkd3d_string_buffer_init(&ctx.buffer);
|
vkd3d_string_buffer_init(&ctx.buffer);
|
||||||
@@ -900,16 +899,9 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
|
|||||||
return VKD3D_ERROR_INVALID_SHADER;
|
return VKD3D_ERROR_INVALID_SHADER;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(output_code = vkd3d_malloc(ctx.buffer.content_size)))
|
|
||||||
{
|
|
||||||
vkd3d_string_buffer_cleanup(&ctx.buffer);
|
|
||||||
return VKD3D_ERROR_OUT_OF_MEMORY;
|
|
||||||
}
|
|
||||||
memcpy(output_code, ctx.buffer.buffer, ctx.buffer.content_size);
|
|
||||||
out->size = ctx.buffer.content_size;
|
|
||||||
out->code = output_code;
|
|
||||||
vkd3d_string_buffer_trace(&ctx.buffer);
|
vkd3d_string_buffer_trace(&ctx.buffer);
|
||||||
vkd3d_string_buffer_cleanup(&ctx.buffer);
|
|
||||||
|
vkd3d_shader_code_from_string_buffer(out, &ctx.buffer);
|
||||||
return VKD3D_OK;
|
return VKD3D_OK;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
Reference in New Issue
Block a user