diff options
author | Timothy Arceri <tarceri@itsqueeze.com> | 2017-03-17 21:53:35 +1100 |
---|---|---|
committer | Timothy Arceri <tarceri@itsqueeze.com> | 2017-03-18 14:12:40 +1100 |
commit | 40bc1afc9437433f2f1d1c0a6980376ff5670638 (patch) | |
tree | 8328666a98cd967d92ccb980a69dd41faa646c0f | |
parent | 1d5f4f46dae0fd809cec593683bb89dc745e15ae (diff) |
glsl: don't leak memory when trying to count loop iterations
Suggested-by: Damian Dixon <damian.dixon@gmail.com>
Reviewed-by: Elie Tournier <elie.tournier@collabora.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99789
-rw-r--r-- | src/compiler/glsl/loop_controls.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/compiler/glsl/loop_controls.cpp b/src/compiler/glsl/loop_controls.cpp index c717605ec7..fa739afa24 100644 --- a/src/compiler/glsl/loop_controls.cpp +++ b/src/compiler/glsl/loop_controls.cpp @@ -97,9 +97,10 @@ calculate_iterations(ir_rvalue *from, ir_rvalue *to, ir_rvalue *increment, new(mem_ctx) ir_expression(ir_binop_div, sub->type, sub, increment); ir_constant *iter = div->constant_expression_value(); - - if (iter == NULL) + if (iter == NULL) { + ralloc_free(mem_ctx); return -1; + } if (!iter->type->is_integer()) { const ir_expression_operation op = iter->type->is_double() |