mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/preproc: Store argument values per expansion, not per macro.
This commit is contained in:
committed by
Henri Verbeet
parent
e7c4867359
commit
aa79bfa681
Notes:
Henri Verbeet
2024-10-07 17:53:30 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1147
@@ -91,7 +91,6 @@ bool preproc_add_macro(struct preproc_ctx *ctx, const struct vkd3d_shader_locati
|
||||
size_t arg_count, const struct vkd3d_shader_location *body_loc, struct vkd3d_string_buffer *body)
|
||||
{
|
||||
struct preproc_macro *macro;
|
||||
unsigned int i;
|
||||
int ret;
|
||||
|
||||
if ((macro = preproc_find_macro(ctx, name)))
|
||||
@@ -108,14 +107,6 @@ bool preproc_add_macro(struct preproc_ctx *ctx, const struct vkd3d_shader_locati
|
||||
macro->name = name;
|
||||
macro->arg_names = arg_names;
|
||||
macro->arg_count = arg_count;
|
||||
macro->arg_values = NULL;
|
||||
if (arg_count && !(macro->arg_values = vkd3d_calloc(arg_count, sizeof(*macro->arg_values))))
|
||||
{
|
||||
vkd3d_free(macro);
|
||||
return false;
|
||||
}
|
||||
for (i = 0; i < arg_count; ++i)
|
||||
vkd3d_string_buffer_init(¯o->arg_values[i].text);
|
||||
macro->body.text = *body;
|
||||
macro->body.location = *body_loc;
|
||||
ret = rb_put(&ctx->macros, name, ¯o->entry);
|
||||
@@ -129,12 +120,8 @@ void preproc_free_macro(struct preproc_macro *macro)
|
||||
|
||||
vkd3d_free(macro->name);
|
||||
for (i = 0; i < macro->arg_count; ++i)
|
||||
{
|
||||
vkd3d_string_buffer_cleanup(¯o->arg_values[i].text);
|
||||
vkd3d_free(macro->arg_names[i]);
|
||||
}
|
||||
vkd3d_free(macro->arg_names);
|
||||
vkd3d_free(macro->arg_values);
|
||||
vkd3d_string_buffer_cleanup(¯o->body.text);
|
||||
vkd3d_free(macro);
|
||||
}
|
||||
|
Reference in New Issue
Block a user