[Mesa-dev] [PATCH 1/2] glsl: Use (const char *) in AST nodes rather than plain (char *).
Ian Romanick
idr at freedesktop.org
Fri Mar 30 09:22:36 PDT 2012
On 03/29/2012 11:17 PM, Kenneth Graunke wrote:
> Nothing actually relied on them being mutable, and there was at least
> one cast which discarded const qualifiers. The next patch would have
> introduced many more.
>
> Casting away const qualifiers should be avoided if at all possible.
>
> Signed-off-by: Kenneth Graunke<kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
> src/glsl/ast.h | 16 ++++++++--------
> src/glsl/glsl_parser.yy | 2 +-
> src/glsl/glsl_parser_extras.cpp | 4 ++--
> 3 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/src/glsl/ast.h b/src/glsl/ast.h
> index 1f78af8..9c0cff8 100644
> --- a/src/glsl/ast.h
> +++ b/src/glsl/ast.h
> @@ -206,7 +206,7 @@ public:
> subexpressions[0] = NULL;
> subexpressions[1] = NULL;
> subexpressions[2] = NULL;
> - primary_expression.identifier = (char *) identifier;
> + primary_expression.identifier = identifier;
> this->non_lvalue_description = NULL;
> }
>
> @@ -222,7 +222,7 @@ public:
> ast_expression *subexpressions[3];
>
> union {
> - char *identifier;
> + const char *identifier;
> int int_constant;
> float float_constant;
> unsigned uint_constant;
> @@ -317,11 +317,11 @@ public:
>
> class ast_declaration : public ast_node {
> public:
> - ast_declaration(char *identifier, int is_array, ast_expression *array_size,
> + ast_declaration(const char *identifier, int is_array, ast_expression *array_size,
> ast_expression *initializer);
> virtual void print(void) const;
>
> - char *identifier;
> + const char *identifier;
>
> int is_array;
> ast_expression *array_size;
> @@ -407,13 +407,13 @@ struct ast_type_qualifier {
>
> class ast_struct_specifier : public ast_node {
> public:
> - ast_struct_specifier(char *identifier, ast_node *declarator_list);
> + ast_struct_specifier(const char *identifier, ast_node *declarator_list);
> virtual void print(void) const;
>
> virtual ir_rvalue *hir(exec_list *instructions,
> struct _mesa_glsl_parse_state *state);
>
> - char *name;
> + const char *name;
> exec_list declarations;
> };
>
> @@ -568,7 +568,7 @@ public:
> struct _mesa_glsl_parse_state *state);
>
> ast_fully_specified_type *type;
> - char *identifier;
> + const char *identifier;
> int is_array;
> ast_expression *array_size;
>
> @@ -599,7 +599,7 @@ public:
> struct _mesa_glsl_parse_state *state);
>
> ast_fully_specified_type *return_type;
> - char *identifier;
> + const char *identifier;
>
> exec_list parameters;
>
> diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
> index 64506b6..5ab4b63 100644
> --- a/src/glsl/glsl_parser.yy
> +++ b/src/glsl/glsl_parser.yy
> @@ -58,7 +58,7 @@ static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
> %union {
> int n;
> float real;
> - char *identifier;
> + const char *identifier;
>
> struct ast_type_qualifier type_qualifier;
>
> diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
> index 21c3c6e..6547ad2 100644
> --- a/src/glsl/glsl_parser_extras.cpp
> +++ b/src/glsl/glsl_parser_extras.cpp
> @@ -713,7 +713,7 @@ ast_declaration::print(void) const
> }
>
>
> -ast_declaration::ast_declaration(char *identifier, int is_array,
> +ast_declaration::ast_declaration(const char *identifier, int is_array,
> ast_expression *array_size,
> ast_expression *initializer)
> {
> @@ -979,7 +979,7 @@ ast_struct_specifier::print(void) const
> }
>
>
> -ast_struct_specifier::ast_struct_specifier(char *identifier,
> +ast_struct_specifier::ast_struct_specifier(const char *identifier,
> ast_node *declarator_list)
> {
> if (identifier == NULL) {
More information about the mesa-dev
mailing list