glsl: Use (const char *) in AST nodes rather than plain (char *).
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 30 Mar 2012 06:17:31 +0000 (23:17 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 9 Apr 2012 21:30:34 +0000 (14:30 -0700)
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@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glsl/ast.h
src/glsl/glsl_parser.yy
src/glsl/glsl_parser_extras.cpp

index 1f78af87e5a226696a1bedcd2f5a592e47c7bd1c..9c0cff875274f2e9d6f358751a899acbf12510c8 100644 (file)
@@ -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;
 
index 64506b6358a1864f12d44b9d04df29ef1fabb4ae..5ab4b630bc6fbd7e94415a613c9b08f546233495 100644 (file)
@@ -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;
 
index 21c3c6ec2bc28c74f6d627837d3fa50cd84a14b6..6547ad2d3b797e474ffe316c814a66b0fe9c2441 100644 (file)
@@ -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) {