glsl: Make ir_dereference_variable ctor assert the variable exists.

This also seems like a bad idea.  There were too many instances for me
to thoroughly scan the code as I did with the last two patches, but a
quick scan indicated that most callers newly allocate a variable,
dereference it, or NULL-check.  In some cases, it wasn't clear that the
value would be non-NULL, but they didn't check for error_type either.

At any rate, not checking for this is a bug, and assertions will trigger
it earlier and more reliably than returning error_type.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Kenneth Graunke
2012-03-13 13:05:16 -07:00
parent dca19a7711
commit 7a348b91ce

View File

@@ -1026,9 +1026,11 @@ ir_loop::ir_loop()
ir_dereference_variable::ir_dereference_variable(ir_variable *var)
{
assert(var != NULL);
this->ir_type = ir_type_dereference_variable;
this->var = var;
this->type = (var != NULL) ? var->type : glsl_type::error_type;
this->type = var->type;
}