Browse Source

glsl: Use (const char *) in AST nodes rather than plain (char *).

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>
tags/i965-primitive-restart-v2
Kenneth Graunke 13 years ago
parent
commit
b2c0df2b60
3 changed files with 11 additions and 11 deletions
  1. 8
    8
      src/glsl/ast.h
  2. 1
    1
      src/glsl/glsl_parser.yy
  3. 2
    2
      src/glsl/glsl_parser_extras.cpp

+ 8
- 8
src/glsl/ast.h View File

subexpressions[0] = NULL; subexpressions[0] = NULL;
subexpressions[1] = NULL; subexpressions[1] = NULL;
subexpressions[2] = NULL; subexpressions[2] = NULL;
primary_expression.identifier = (char *) identifier;
primary_expression.identifier = identifier;
this->non_lvalue_description = NULL; this->non_lvalue_description = NULL;
} }


ast_expression *subexpressions[3]; ast_expression *subexpressions[3];


union { union {
char *identifier;
const char *identifier;
int int_constant; int int_constant;
float float_constant; float float_constant;
unsigned uint_constant; unsigned uint_constant;


class ast_declaration : public ast_node { class ast_declaration : public ast_node {
public: 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); ast_expression *initializer);
virtual void print(void) const; virtual void print(void) const;


char *identifier;
const char *identifier;
int is_array; int is_array;
ast_expression *array_size; ast_expression *array_size;


class ast_struct_specifier : public ast_node { class ast_struct_specifier : public ast_node {
public: 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 void print(void) const;


virtual ir_rvalue *hir(exec_list *instructions, virtual ir_rvalue *hir(exec_list *instructions,
struct _mesa_glsl_parse_state *state); struct _mesa_glsl_parse_state *state);


char *name;
const char *name;
exec_list declarations; exec_list declarations;
}; };


struct _mesa_glsl_parse_state *state); struct _mesa_glsl_parse_state *state);


ast_fully_specified_type *type; ast_fully_specified_type *type;
char *identifier;
const char *identifier;
int is_array; int is_array;
ast_expression *array_size; ast_expression *array_size;


struct _mesa_glsl_parse_state *state); struct _mesa_glsl_parse_state *state);


ast_fully_specified_type *return_type; ast_fully_specified_type *return_type;
char *identifier;
const char *identifier;


exec_list parameters; exec_list parameters;



+ 1
- 1
src/glsl/glsl_parser.yy View File

%union { %union {
int n; int n;
float real; float real;
char *identifier;
const char *identifier;


struct ast_type_qualifier type_qualifier; struct ast_type_qualifier type_qualifier;



+ 2
- 2
src/glsl/glsl_parser_extras.cpp View File

} }




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 *array_size,
ast_expression *initializer) ast_expression *initializer)
{ {
} }




ast_struct_specifier::ast_struct_specifier(char *identifier,
ast_struct_specifier::ast_struct_specifier(const char *identifier,
ast_node *declarator_list) ast_node *declarator_list)
{ {
if (identifier == NULL) { if (identifier == NULL) {

Loading…
Cancel
Save