glsl: Make the symbol table's add_function just use the function's name.

This commit is contained in:
Eric Anholt
2010-11-05 06:08:45 -07:00
parent 2927b6c212
commit e8f5ebf313
6 changed files with 9 additions and 9 deletions

View File

@@ -2495,7 +2495,7 @@ ast_function::hir(exec_list *instructions,
} }
} else { } else {
f = new(ctx) ir_function(name); f = new(ctx) ir_function(name);
if (!state->symbols->add_function(f->name, f)) { if (!state->symbols->add_function(f)) {
/* This function name shadows a non-function use of the same name. */ /* This function name shadows a non-function use of the same name. */
YYLTYPE loc = this->get_location(); YYLTYPE loc = this->get_location();

View File

@@ -121,18 +121,18 @@ bool glsl_symbol_table::add_type(const char *name, const glsl_type *t)
return _mesa_symbol_table_add_symbol(table, -1, name, entry) == 0; return _mesa_symbol_table_add_symbol(table, -1, name, entry) == 0;
} }
bool glsl_symbol_table::add_function(const char *name, ir_function *f) bool glsl_symbol_table::add_function(ir_function *f)
{ {
if (this->language_version == 110 && name_declared_this_scope(name)) { if (this->language_version == 110 && name_declared_this_scope(f->name)) {
/* In 1.10, functions and variables have separate namespaces. */ /* In 1.10, functions and variables have separate namespaces. */
symbol_table_entry *existing = get_entry(name); symbol_table_entry *existing = get_entry(f->name);
if ((existing->f == NULL) && (existing->t == NULL)) { if ((existing->f == NULL) && (existing->t == NULL)) {
existing->f = f; existing->f = f;
return true; return true;
} }
} }
symbol_table_entry *entry = new(mem_ctx) symbol_table_entry(f); symbol_table_entry *entry = new(mem_ctx) symbol_table_entry(f);
return _mesa_symbol_table_add_symbol(table, -1, name, entry) == 0; return _mesa_symbol_table_add_symbol(table, -1, f->name, entry) == 0;
} }
ir_variable *glsl_symbol_table::get_variable(const char *name) ir_variable *glsl_symbol_table::get_variable(const char *name)

View File

@@ -99,7 +99,7 @@ public:
/*@{*/ /*@{*/
bool add_variable(const char *name, ir_variable *v); bool add_variable(const char *name, ir_variable *v);
bool add_type(const char *name, const glsl_type *t); bool add_type(const char *name, const glsl_type *t);
bool add_function(const char *name, ir_function *f); bool add_function(ir_function *f);
/*@}*/ /*@}*/
/** /**

View File

@@ -64,7 +64,7 @@ public:
/* Add the new function to the symbol table. /* Add the new function to the symbol table.
*/ */
this->symbols->add_function(this->function->name, this->function); this->symbols->add_function(this->function);
} }
return visit_continue; return visit_continue;
} }

View File

@@ -221,7 +221,7 @@ read_function(_mesa_glsl_parse_state *st, s_list *list, bool skip_body)
ir_function *f = st->symbols->get_function(name->value()); ir_function *f = st->symbols->get_function(name->value());
if (f == NULL) { if (f == NULL) {
f = new(ctx) ir_function(name->value()); f = new(ctx) ir_function(name->value());
added = st->symbols->add_function(f->name, f); added = st->symbols->add_function(f);
assert(added); assert(added);
} }

View File

@@ -546,7 +546,7 @@ populate_symbol_table(gl_shader *sh)
ir_function *func; ir_function *func;
if ((func = inst->as_function()) != NULL) { if ((func = inst->as_function()) != NULL) {
sh->symbols->add_function(func->name, func); sh->symbols->add_function(func);
} else if ((var = inst->as_variable()) != NULL) { } else if ((var = inst->as_variable()) != NULL) {
sh->symbols->add_variable(var->name, var); sh->symbols->add_variable(var->name, var);
} }