From b6ec977f1a7db623a5ddd47c40392b6b261c43b5 Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Sat, 13 Feb 2016 18:04:58 -0500 Subject: [PATCH] poor attempt at fixing unreal engine struct redefine --- src/compiler/glsl/glsl_symbol_table.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/compiler/glsl/glsl_symbol_table.cpp b/src/compiler/glsl/glsl_symbol_table.cpp index 6c682ac..87229da 100644 --- a/src/compiler/glsl/glsl_symbol_table.cpp +++ b/src/compiler/glsl/glsl_symbol_table.cpp @@ -167,8 +167,13 @@ bool glsl_symbol_table::add_variable(ir_variable *v) bool glsl_symbol_table::add_type(const char *name, const glsl_type *t) { - symbol_table_entry *entry = new(mem_ctx) symbol_table_entry(t); - return _mesa_symbol_table_add_symbol(table, -1, name, entry) == 0; + symbol_table_entry *existing = get_entry(name); + if (!existing) { + symbol_table_entry *entry = new(mem_ctx) symbol_table_entry(t); + return _mesa_symbol_table_add_symbol(table, -1, name, entry) == 0; + } + existing->t = t; + return true; } bool glsl_symbol_table::add_interface(const char *name, const glsl_type *i,