[PATCH vkd3d 4/6] vkd3d-shader/hlsl: Get rid of append_unop().
Giovanni Mascellani
gmascellani at codeweavers.com
Mon Sep 27 05:44:34 CDT 2021
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Il 23/09/21 23:47, Zebediah Figura ha scritto:
> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> ---
> libs/vkd3d-shader/hlsl.y | 18 ++++++++++--------
> 1 file changed, 10 insertions(+), 8 deletions(-)
>
> diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
> index 42a6768cc..941f49cfe 100644
> --- a/libs/vkd3d-shader/hlsl.y
> +++ b/libs/vkd3d-shader/hlsl.y
> @@ -1069,12 +1069,6 @@ static struct hlsl_ir_expr *add_expr(struct hlsl_ctx *ctx, struct list *instrs,
> return expr;
> }
>
> -static struct list *append_unop(struct list *list, struct hlsl_ir_node *node)
> -{
> - list_add_tail(list, &node->entry);
> - return list;
> -}
> -
> static struct list *add_unary_expr(struct hlsl_ctx *ctx, struct list *instrs,
> enum hlsl_ir_expr_op op, struct vkd3d_shader_location loc)
> {
> @@ -2934,7 +2928,8 @@ postfix_expr:
> hlsl_error(ctx, @3, VKD3D_SHADER_ERROR_HLSL_INVALID_SYNTAX, "Invalid swizzle \"%s\".", $3);
> YYABORT;
> }
> - $$ = append_unop($1, &swizzle->node);
> + list_add_tail($1, &swizzle->node.entry);
> + $$ = $1;
> }
> else
> {
> @@ -3047,6 +3042,7 @@ unary_expr:
> {
> struct hlsl_type *src_type = node_from_list($6)->data_type;
> struct hlsl_type *dst_type;
> + struct hlsl_ir_expr *cast;
> unsigned int i;
>
> if ($2)
> @@ -3074,7 +3070,13 @@ unary_expr:
> YYABORT;
> }
>
> - $$ = append_unop($6, &hlsl_new_cast(ctx, node_from_list($6), dst_type, &@3)->node);
> + if (!(cast = hlsl_new_cast(ctx, node_from_list($6), dst_type, &@3)))
> + {
> + hlsl_free_instr_list($6);
> + YYABORT;
> + }
> + list_add_tail($6, &cast->node.entry);
> + $$ = $6;
> }
>
> mul_expr:
>
More information about the wine-devel
mailing list