glsl: Make the symbol table's add_function just use the function's name.
authorEric Anholt <eric@anholt.net>
Fri, 5 Nov 2010 13:08:45 +0000 (06:08 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 30 Nov 2010 01:08:27 +0000 (17:08 -0800)
src/glsl/ast_to_hir.cpp
src/glsl/glsl_symbol_table.cpp
src/glsl/glsl_symbol_table.h
src/glsl/ir_import_prototypes.cpp
src/glsl/ir_reader.cpp
src/glsl/linker.cpp

index d615b30e7daf23c0b75c8e1f811e8a3b2d89feec..1f001273195cd5b80a938f79e6c76030c8e6aabc 100644 (file)
@@ -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();
 
index e9bf89b951df246cf312dbd9d75383f8290c0239..3b384d875aefd3d139a62ab74245492511f728f3 100644 (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;
 }
 
-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)
index f26de52432574e00d20e8642c535ebc1fd047964..883c301e32d92fda285d1a649833397f77133f28 100644 (file)
@@ -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);
    /*@}*/
 
    /**
index 066137e60aab5d9b372a64f9788050803231bbd8..2bdc8d9fd7d21da85182303a241ce1dd7c9f2500 100644 (file)
@@ -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;
    }
index 7a22a945ec5aa956cb278428b59ae5980a512cc4..446776c691d8493291ea5c85eba360ee36d4b74d 100644 (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());
    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);
    }
 
index 616ec7800713c481db160d8c18a878b6a20f65a6..7aa94064d6875b4f915d1f69f499ba501e08d25d 100644 (file)
@@ -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);
       }