[Mesa-dev] [PATCH] glcpp: fix abuse of yylex

Kenneth Graunke kenneth at whitecape.org
Fri Sep 14 04:07:01 PDT 2012


On 09/14/2012 03:01 AM, Dave Airlie wrote:
> So glcpp tried to workaround yylex its own way, but failed,
> do it properly.
> 
> This fixes another crash found after fixing the first crash.
> 
> this is a candidate for 9.0 and stable branches
> 
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/glsl/glcpp/Makefile.am   | 2 +-
>  src/glsl/glcpp/glcpp-parse.y | 8 --------
>  2 files changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/src/glsl/glcpp/Makefile.am b/src/glsl/glcpp/Makefile.am
> index 7a95b68..87affce 100644
> --- a/src/glsl/glcpp/Makefile.am
> +++ b/src/glsl/glcpp/Makefile.am
> @@ -31,7 +31,7 @@ AM_CFLAGS = \
>  	$(LIBRARY_DEFINES) \
>  	$(API_DEFINES)
>  
> -AM_YFLAGS = -v -d
> +AM_YFLAGS = -v -d -p "glcpp_parser_"
>  AM_LFLAGS = --nounistd -o$(LEX_OUTPUT_ROOT).c
>  
>  noinst_LTLIBRARIES = libglcpp.la
> diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
> index bf6f3ad..fb9bc58 100644
> --- a/src/glsl/glcpp/glcpp-parse.y
> +++ b/src/glsl/glcpp/glcpp-parse.y
> @@ -133,8 +133,6 @@ _glcpp_parser_skip_stack_change_if (glcpp_parser_t *parser, YYLTYPE *loc,
>  static void
>  _glcpp_parser_skip_stack_pop (glcpp_parser_t *parser, YYLTYPE *loc);
>  
> -#define yylex glcpp_parser_lex
> -
>  static int
>  glcpp_parser_lex (YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser);
>  
> @@ -1197,12 +1195,6 @@ glcpp_parser_create (const struct gl_extensions *extensions, int api)
>  	return parser;
>  }
>  
> -int
> -glcpp_parser_parse (glcpp_parser_t *parser)
> -{
> -	return yyparse (parser);
> -}
> -
>  void
>  glcpp_parser_destroy (glcpp_parser_t *parser)
>  {

Wow.  I have no idea why it was done that way.  Using the prefix option
clearly seems like the right approach.  Thanks Dave.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>


More information about the mesa-dev mailing list