aboutsummaryrefslogtreecommitdiffstats
path: root/src/glsl/loop_controls.cpp
diff options
context:
space:
mode:
authorAras Pranckevicius <[email protected]>2010-09-30 12:47:31 +0300
committerEric Anholt <[email protected]>2010-11-11 10:49:37 -0800
commitd67df5dd9db1cede92f1b177c890f83809bb4582 (patch)
treec2fdb243eb1e27189834be05c3139dfc9b2dbe1f /src/glsl/loop_controls.cpp
parent7fb16423cc325efcdcf6e4954a5ac71d8f96dbf8 (diff)
glsl: fix crash in loop analysis when some controls can't be determined
Fixes loop-07.frag.
Diffstat (limited to 'src/glsl/loop_controls.cpp')
-rw-r--r--src/glsl/loop_controls.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glsl/loop_controls.cpp b/src/glsl/loop_controls.cpp
index 2ef3d305254..b528810f40d 100644
--- a/src/glsl/loop_controls.cpp
+++ b/src/glsl/loop_controls.cpp
@@ -85,6 +85,9 @@ int
calculate_iterations(ir_rvalue *from, ir_rvalue *to, ir_rvalue *increment,
enum ir_expression_operation op)
{
+ if (from == NULL || to == NULL || increment == NULL)
+ return -1;
+
void *mem_ctx = talloc_init("%s", __func__);
ir_expression *const sub =