Sfoglia il codice sorgente

glsl: fix crash with variable indexing into array in a struct

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
tags/mesa-7.9-rc1
Aras Pranckevicius 16 anni fa
parent
commit
5226f8c7b0
1 ha cambiato i file con 7 aggiunte e 1 eliminazioni
  1. 7
    1
      src/glsl/ast_to_hir.cpp

+ 7
- 1
src/glsl/ast_to_hir.cpp Vedi File

@@ -1259,8 +1259,14 @@ ast_expression::hir(exec_list *instructions,
_mesa_glsl_error(&loc, state, "unsized array index must be constant");
} else {
if (array->type->is_array()) {
/* whole_variable_referenced can return NULL if the array is a
* member of a structure. In this case it is safe to not update
* the max_array_access field because it is never used for fields
* of structures.
*/
ir_variable *v = array->whole_variable_referenced();
v->max_array_access = array->type->array_size();
if (v != NULL)
v->max_array_access = array->type->array_size();
}
}


Loading…
Annulla
Salva