Module: Mesa
Branch: master
Commit: ea055e19c2757dfe97dd13c1deee2bfa177eae3f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ea055e19c2757dfe97dd13c1deee2bfa177eae3f

Author: Marcin Slusarz <marcin.slus...@gmail.com>
Date:   Tue Jun  5 21:10:33 2012 +0200

glsl: fix deref_hash memory leak in constant_expression_value

Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>

---

 src/glsl/ir_constant_expression.cpp |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/glsl/ir_constant_expression.cpp 
b/src/glsl/ir_constant_expression.cpp
index 7a4d15f..38a1ed9 100644
--- a/src/glsl/ir_constant_expression.cpp
+++ b/src/glsl/ir_constant_expression.cpp
@@ -1322,8 +1322,11 @@ 
ir_function_signature::constant_expression_value(exec_list *actual_parameters, s
 
    foreach_list(n, actual_parameters) {
       ir_constant *constant = ((ir_rvalue *) 
n)->constant_expression_value(variable_context);
-      if (constant == NULL)
-        return NULL;
+      if (constant == NULL) {
+         hash_table_dtor(deref_hash);
+         return NULL;
+      }
+
 
       ir_variable *var = (ir_variable *)parameter_info;
       hash_table_insert(deref_hash, constant, var);

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to