[Mesa-dev] [PATCH 8/9] glcpp: add gl_context to glcpp_parser_t

Ian Romanick idr at freedesktop.org
Fri Apr 13 11:04:51 PDT 2012


On 04/13/2012 08:52 AM, nobled wrote:
> ---
>   src/glsl/glcpp/glcpp-parse.y |    5 ++++-
>   src/glsl/glcpp/glcpp.h       |    5 ++---
>   src/glsl/glcpp/pp.c          |    3 +--
>   3 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/src/glsl/glcpp/glcpp-parse.y b/src/glsl/glcpp/glcpp-parse.y
> index 47ba54d..dd90a34 100644
> --- a/src/glsl/glcpp/glcpp-parse.y
> +++ b/src/glsl/glcpp/glcpp-parse.y
> @@ -1081,16 +1081,19 @@ static void add_builtin_define(glcpp_parser_t *parser,
>   }
>
>   glcpp_parser_t *
> -glcpp_parser_create (const struct gl_extensions *extensions, int api)
> +glcpp_parser_create (int api, struct gl_context *ctx)

Pretty much everywhere else in Mesa the gl_context is the first 
parameter.  Some of the earlier patches may also deviate from the 
"usual" ordering.

>   {
>   	glcpp_parser_t *parser;
>   	int language_version;
> +	const struct gl_extensions *extensions;
>
>   	parser = ralloc (NULL, glcpp_parser_t);
> +	extensions = ctx ?&ctx->Extensions : NULL;
>
>   	glcpp_lex_init_extra (parser,&parser->scanner);
>   	parser->defines = hash_table_ctor (32, hash_table_string_hash,
>   					   hash_table_string_compare);
> +	parser->ctx = ctx;
>   	parser->active = NULL;
>   	parser->lexing_if = 0;
>   	parser->space_tokens = 1;
> diff --git a/src/glsl/glcpp/glcpp.h b/src/glsl/glcpp/glcpp.h
> index 0c52077..699b21b 100644
> --- a/src/glsl/glcpp/glcpp.h
> +++ b/src/glsl/glcpp/glcpp.h
> @@ -164,6 +164,7 @@ struct gl_context;
>
>   struct glcpp_parser {
>   	yyscan_t scanner;
> +	struct gl_context *ctx;
>   	struct hash_table *defines;
>   	active_list_t *active;
>   	int lexing_if;
> @@ -181,10 +182,8 @@ struct glcpp_parser {
>   	int error;
>   };
>
> -struct gl_extensions;
> -
>   glcpp_parser_t *
> -glcpp_parser_create (const struct gl_extensions *extensions, int api);
> +glcpp_parser_create (int api, struct gl_context *glctx);
>
>   int
>   glcpp_parser_parse (glcpp_parser_t *parser);
> diff --git a/src/glsl/glcpp/pp.c b/src/glsl/glcpp/pp.c
> index 7218eeb..32054bb 100644
> --- a/src/glsl/glcpp/pp.c
> +++ b/src/glsl/glcpp/pp.c
> @@ -149,8 +149,7 @@ preprocess(void *ralloc_ctx, const char **shader,
> char **info_log,
>   	   int api, struct gl_context *glctx)
>   {
>   	int errors;
> -	struct gl_extensions *extensions = glctx ?&glctx->Extensions : NULL;
> -	glcpp_parser_t *parser = glcpp_parser_create (extensions, api);
> +	glcpp_parser_t *parser = glcpp_parser_create (api, glctx);
>   	*shader = remove_line_continuations(parser, *shader);
>
>   	glcpp_lex_set_source_string (parser, *shader);



More information about the mesa-dev mailing list