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 <airl...@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; } } -- 1.8.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev