From: Samuel Iglesias Gonsalvez Date: Mon, 19 Oct 2015 08:37:14 +0000 (+0200) Subject: glsl: fix segfault when indirect indexing a buffer variable which is an array X-Git-Tag: upstream/17.1.0~15254 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6f3954618b0fe273af76af79ce9ec56566b79b2a;p=platform%2Fupstream%2Fmesa.git glsl: fix segfault when indirect indexing a buffer variable which is an array Fixes a regression added by bb5aeb854915ba67abc56257f830d002c956439e. Signed-off-by: Samuel Iglesias Gonsalvez Reviewed-by: Timothy Arceri --- diff --git a/src/glsl/lower_ubo_reference.cpp b/src/glsl/lower_ubo_reference.cpp index 1fbb09d..e818c04 100644 --- a/src/glsl/lower_ubo_reference.cpp +++ b/src/glsl/lower_ubo_reference.cpp @@ -284,7 +284,8 @@ interface_field_name(void *mem_ctx, char *base_name, ir_rvalue *d, if (array_index->type != glsl_type::uint_type) array_index = i2u(array_index); - if (a->array->type->fields.array->is_array()) { + if (a->array->type->is_array() && + a->array->type->fields.array->is_array()) { ir_constant *base_size = new(mem_ctx) ir_constant(a->array->type->fields.array->arrays_of_arrays_size()); array_index = mul(array_index, base_size);