glsl2: Fix storing of dead memory in the symbol table.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 30 Jun 2010 18:57:43 +0000 (11:57 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 30 Jun 2010 20:52:24 +0000 (13:52 -0700)
decl->identifier is part of the AST, so it doesn't live very long.
Instead, add var->name which is owned by var.

src/glsl/ast_to_hir.cpp

index 53f17de7b95071a0dec1dafcbef23e0371b0e328..a0ca7e5f6df02c0a9dd1a727ccb9a06c93c5584d 100644 (file)
@@ -1851,7 +1851,7 @@ ast_declarator_list::hir(exec_list *instructions,
                          "const declaration of `%s' must be initialized");
       }
 
-      /* Add the vairable to the symbol table after processing the initializer.
+      /* Add the variable to the symbol table after processing the initializer.
        * This differs from most C-like languages, but it follows the GLSL
        * specification.  From page 28 (page 34 of the PDF) of the GLSL 1.50
        * spec:
@@ -1861,7 +1861,7 @@ ast_declarator_list::hir(exec_list *instructions,
        *     being declared if not."
        */
       const bool added_variable =
-        state->symbols->add_variable(decl->identifier, var);
+        state->symbols->add_variable(var->name, var);
       assert(added_variable);
    }