summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-11-05 06:08:45 -0700
committerEric Anholt <eric@anholt.net>2010-11-29 17:08:27 -0800
commite8f5ebf313da3ce33ccbbcf9b72946853035fbdd (patch)
tree8709b84f862b9919410d82b4a384403e4dfa9c2c
parent2927b6c21202fd0f9a661665e0093e7193c5df6e (diff)
glsl: Make the symbol table's add_function just use the function's name.
-rw-r--r--src/glsl/ast_to_hir.cpp2
-rw-r--r--src/glsl/glsl_symbol_table.cpp8
-rw-r--r--src/glsl/glsl_symbol_table.h2
-rw-r--r--src/glsl/ir_import_prototypes.cpp2
-rw-r--r--src/glsl/ir_reader.cpp2
-rw-r--r--src/glsl/linker.cpp2
6 files changed, 9 insertions, 9 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index d615b30e7d..1f00127319 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2495,7 +2495,7 @@ ast_function::hir(exec_list *instructions,
}
} else {
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. */
YYLTYPE loc = this->get_location();
diff --git a/src/glsl/glsl_symbol_table.cpp b/src/glsl/glsl_symbol_table.cpp
index e9bf89b951..3b384d875a 100644
--- a/src/glsl/glsl_symbol_table.cpp
+++ b/src/glsl/glsl_symbol_table.cpp
@@ -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;
}
-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. */
- symbol_table_entry *existing = get_entry(name);
+ symbol_table_entry *existing = get_entry(f->name);
if ((existing->f == NULL) && (existing->t == NULL)) {
existing->f = f;
return true;
}
}
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)
diff --git a/src/glsl/glsl_symbol_table.h b/src/glsl/glsl_symbol_table.h
index f26de52432..883c301e32 100644
--- a/src/glsl/glsl_symbol_table.h
+++ b/src/glsl/glsl_symbol_table.h
@@ -99,7 +99,7 @@ public:
/*@{*/
bool add_variable(const char *name, ir_variable *v);
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);
/*@}*/
/**
diff --git a/src/glsl/ir_import_prototypes.cpp b/src/glsl/ir_import_prototypes.cpp
index 066137e60a..2bdc8d9fd7 100644
--- a/src/glsl/ir_import_prototypes.cpp
+++ b/src/glsl/ir_import_prototypes.cpp
@@ -64,7 +64,7 @@ public:
/* 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;
}
diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp
index 7a22a945ec..446776c691 100644
--- a/src/glsl/ir_reader.cpp
+++ b/src/glsl/ir_reader.cpp
@@ -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());
if (f == NULL) {
f = new(ctx) ir_function(name->value());
- added = st->symbols->add_function(f->name, f);
+ added = st->symbols->add_function(f);
assert(added);
}
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 616ec78007..7aa94064d6 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -546,7 +546,7 @@ populate_symbol_table(gl_shader *sh)
ir_function *func;
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) {
sh->symbols->add_variable(var->name, var);
}