[PATCH vkd3d 2/5] vkd3d-shader/hlsl: Introduce an allocation helper for vkd3d_realloc() as well.

Giovanni Mascellani gmascellani at codeweavers.com
Tue Sep 21 04:04:37 CDT 2021


Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>

Il 20/09/21 23:40, Zebediah Figura ha scritto:
> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> ---
>   libs/vkd3d-shader/hlsl.h | 9 +++++++++
>   libs/vkd3d-shader/hlsl.y | 6 +++---
>   2 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/libs/vkd3d-shader/hlsl.h b/libs/vkd3d-shader/hlsl.h
> index 7079171b8..c69dc4a08 100644
> --- a/libs/vkd3d-shader/hlsl.h
> +++ b/libs/vkd3d-shader/hlsl.h
> @@ -559,6 +559,15 @@ static inline void *hlsl_alloc(struct hlsl_ctx *ctx, size_t size)
>       return ptr;
>   }
>   
> +static inline void *hlsl_realloc(struct hlsl_ctx *ctx, void *ptr, size_t size)
> +{
> +    void *ret = vkd3d_realloc(ptr, size);
> +
> +    if (!ret)
> +        ctx->result = VKD3D_ERROR_OUT_OF_MEMORY;
> +    return ret;
> +}
> +
>   static inline char *hlsl_strdup(struct hlsl_ctx *ctx, const char *string)
>   {
>       char *ptr = vkd3d_strdup(string);
> diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
> index 2206d641d..dc2d31044 100644
> --- a/libs/vkd3d-shader/hlsl.y
> +++ b/libs/vkd3d-shader/hlsl.y
> @@ -1997,7 +1997,7 @@ preproc_directive:
>   
>               ctx->location.line = $1;
>               if (strcmp($2, ctx->location.source_name))
> -                new_array = vkd3d_realloc(ctx->source_files,
> +                new_array = hlsl_realloc(ctx, ctx->source_files,
>                           sizeof(*ctx->source_files) * (ctx->source_files_count + 1));
>   
>               if (new_array)
> @@ -2544,7 +2544,7 @@ arrays:
>                   YYABORT;
>               }
>   
> -            if (!(new_array = vkd3d_realloc($$.sizes, ($$.count + 1) * sizeof(*new_array))))
> +            if (!(new_array = hlsl_realloc(ctx, $$.sizes, ($$.count + 1) * sizeof(*new_array))))
>               {
>                   vkd3d_free($$.sizes);
>                   YYABORT;
> @@ -2636,7 +2636,7 @@ initializer_expr_list:
>       | initializer_expr_list ',' initializer_expr
>           {
>               $$ = $1;
> -            if (!($$.args = vkd3d_realloc($$.args, ($$.args_count + 1) * sizeof(*$$.args))))
> +            if (!($$.args = hlsl_realloc(ctx, $$.args, ($$.args_count + 1) * sizeof(*$$.args))))
>                   YYABORT;
>               $$.args[$$.args_count++] = node_from_list($3);
>               list_move_tail($$.instrs, $3);
> 



More information about the wine-devel mailing list