[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