diff options
-rw-r--r-- | src/compiler/glsl/lower_output_reads.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/compiler/glsl/lower_output_reads.cpp b/src/compiler/glsl/lower_output_reads.cpp index 79488df2932..732f4d3d849 100644 --- a/src/compiler/glsl/lower_output_reads.cpp +++ b/src/compiler/glsl/lower_output_reads.cpp @@ -23,7 +23,7 @@ */ #include "ir.h" -#include "program/hash_table.h" +#include "util/hash_table.h" /** * \file lower_output_reads.cpp @@ -74,20 +74,20 @@ static unsigned hash_table_var_hash(const void *key) { const ir_variable * var = static_cast<const ir_variable *>(key); - return hash_table_string_hash(var->name); + return _mesa_key_hash_string(var->name); } output_read_remover::output_read_remover(unsigned stage) { this->stage = stage; mem_ctx = ralloc_context(NULL); - replacements = - hash_table_ctor(0, hash_table_var_hash, hash_table_pointer_compare); + replacements = _mesa_hash_table_create(NULL, hash_table_var_hash, + _mesa_key_pointer_equal); } output_read_remover::~output_read_remover() { - hash_table_dtor(replacements); + _mesa_hash_table_destroy(replacements, NULL); ralloc_free(mem_ctx); } @@ -99,14 +99,15 @@ output_read_remover::visit(ir_dereference_variable *ir) if (stage == MESA_SHADER_TESS_CTRL) return visit_continue; - ir_variable *temp = (ir_variable *) hash_table_find(replacements, ir->var); + hash_entry *entry = _mesa_hash_table_search(replacements, ir->var); + ir_variable *temp = entry ? (ir_variable *) entry->data : NULL; /* If we don't have an existing temporary, create one. */ if (temp == NULL) { void *var_ctx = ralloc_parent(ir->var); temp = new(var_ctx) ir_variable(ir->var->type, ir->var->name, ir_var_temporary); - hash_table_insert(replacements, temp, ir->var); + _mesa_hash_table_insert(replacements, ir->var, temp); ir->var->insert_after(temp); } @@ -156,7 +157,7 @@ ir_visitor_status output_read_remover::visit_leave(ir_emit_vertex *ir) { hash_table_call_foreach(replacements, emit_return_copy, ir); - hash_table_clear(replacements); + _mesa_hash_table_clear(replacements, NULL); return visit_continue; } |