[Mesa-dev] [PATCH] tgsi_test: fix parsing of array in declaration

Brian Paul brianp at vmware.com
Mon Jun 17 08:02:38 PDT 2013


On 06/16/2013 05:24 AM, Dave Airlie wrote:
> I noticed this code didn't work as advertised while doing some passing around
> of TGSI shaders and trying to reparse them, and things failing.
>
> This seems to fix it here for at least the small test case I hacked into a
> graw test.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>   src/gallium/auxiliary/tgsi/tgsi_text.c | 12 +++++++++---
>   1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
> index 688c5bc..4c5ae4f 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_text.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
> @@ -1129,8 +1129,13 @@ static boolean parse_declaration( struct translate_ctx *ctx )
>         cur2 = cur;
>         cur2++;
>         eat_opt_white( &cur2 );
> -      if (str_match_nocase_whole( &cur2, "ARRAY(" )) {
> +      if (str_match_nocase_whole( &cur2, "ARRAY" )) {
>            int arrayid;
> +         if (*cur2 != '(') {
> +            report_error( ctx, "Expected `('" );
> +            return FALSE;
> +         }
> +         cur2++;
>            eat_opt_white( &cur2 );
>            if (!parse_int( &cur2, &arrayid )) {
>               report_error( ctx, "Expected `,'" );
> @@ -1138,12 +1143,13 @@ static boolean parse_declaration( struct translate_ctx *ctx )
>            }
>            eat_opt_white( &cur2 );
>            if (*cur2 != ')') {
> -            report_error( ctx, "Expected `,'" );
> +            report_error( ctx, "Expected `)'" );
>               return FALSE;
>            }
> +         cur2++;
>            decl.Declaration.Array = 1;
>            decl.Array.ArrayID = arrayid;
> -         cur = cur2;
> +         ctx->cur = cur = cur2;
>         }
>      }
>
>

LGTM.

Reviewed-by: Brian Paul <brianp at vmware.com>


More information about the mesa-dev mailing list