glsl: Fix null return coverity warning

Add an assert on the result of as_dereference() not being NULL:

>>>     CID 1324978:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing a null pointer "deref_record->record->as_dereference()".

Since we are introducing a new variable to hold the result of
as_dereference(), take the opportunity to rename deref_record_type to
interface_type and just name the new variable interface_deref, which is
less confusing.

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
Iago Toral Quiroga 2015-09-28 12:59:34 +02:00
parent 6bf718fec2
commit 1dc2db7a4d

View file

@ -922,12 +922,14 @@ lower_ubo_reference_visitor::calculate_unsized_array_stride(ir_dereference *dere
case ir_type_dereference_record: case ir_type_dereference_record:
{ {
ir_dereference_record *deref_record = (ir_dereference_record *) deref; ir_dereference_record *deref_record = (ir_dereference_record *) deref;
const struct glsl_type *deref_record_type = ir_dereference *interface_deref =
deref_record->record->as_dereference()->type; deref_record->record->as_dereference();
unsigned record_length = deref_record_type->length; assert(interface_deref != NULL);
const struct glsl_type *interface_type = interface_deref->type;
unsigned record_length = interface_type->length;
/* Unsized array is always the last element of the interface */ /* Unsized array is always the last element of the interface */
const struct glsl_type *unsized_array_type = const struct glsl_type *unsized_array_type =
deref_record_type->fields.structure[record_length - 1].type->fields.array; interface_type->fields.structure[record_length - 1].type->fields.array;
const bool array_row_major = const bool array_row_major =
is_dereferenced_thing_row_major(deref_record); is_dereferenced_thing_row_major(deref_record);