glsl: initialize glsl_struct_field properly
don't rely on ralloc doing memset Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net> Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Kenneth Graunke <kenneth@whiteacpe.org>
This commit is contained in:
@@ -123,26 +123,9 @@ glsl_type::glsl_type(const glsl_struct_field *fields, unsigned num_fields,
|
||||
glsl_struct_field, length);
|
||||
|
||||
for (i = 0; i < length; i++) {
|
||||
this->fields.structure[i].type = fields[i].type;
|
||||
this->fields.structure[i] = fields[i];
|
||||
this->fields.structure[i].name = ralloc_strdup(this->fields.structure,
|
||||
fields[i].name);
|
||||
this->fields.structure[i].location = fields[i].location;
|
||||
this->fields.structure[i].offset = fields[i].offset;
|
||||
this->fields.structure[i].interpolation = fields[i].interpolation;
|
||||
this->fields.structure[i].centroid = fields[i].centroid;
|
||||
this->fields.structure[i].sample = fields[i].sample;
|
||||
this->fields.structure[i].matrix_layout = fields[i].matrix_layout;
|
||||
this->fields.structure[i].patch = fields[i].patch;
|
||||
this->fields.structure[i].image_read_only = fields[i].image_read_only;
|
||||
this->fields.structure[i].image_write_only = fields[i].image_write_only;
|
||||
this->fields.structure[i].image_coherent = fields[i].image_coherent;
|
||||
this->fields.structure[i].image_volatile = fields[i].image_volatile;
|
||||
this->fields.structure[i].image_restrict = fields[i].image_restrict;
|
||||
this->fields.structure[i].precision = fields[i].precision;
|
||||
this->fields.structure[i].explicit_xfb_buffer =
|
||||
fields[i].explicit_xfb_buffer;
|
||||
this->fields.structure[i].xfb_buffer = fields[i].xfb_buffer;
|
||||
this->fields.structure[i].xfb_stride = fields[i].xfb_stride;
|
||||
}
|
||||
|
||||
mtx_unlock(&glsl_type::mutex);
|
||||
@@ -169,26 +152,9 @@ glsl_type::glsl_type(const glsl_struct_field *fields, unsigned num_fields,
|
||||
this->fields.structure = ralloc_array(this->mem_ctx,
|
||||
glsl_struct_field, length);
|
||||
for (i = 0; i < length; i++) {
|
||||
this->fields.structure[i].type = fields[i].type;
|
||||
this->fields.structure[i] = fields[i];
|
||||
this->fields.structure[i].name = ralloc_strdup(this->fields.structure,
|
||||
fields[i].name);
|
||||
this->fields.structure[i].location = fields[i].location;
|
||||
this->fields.structure[i].offset = fields[i].offset;
|
||||
this->fields.structure[i].interpolation = fields[i].interpolation;
|
||||
this->fields.structure[i].centroid = fields[i].centroid;
|
||||
this->fields.structure[i].sample = fields[i].sample;
|
||||
this->fields.structure[i].matrix_layout = fields[i].matrix_layout;
|
||||
this->fields.structure[i].patch = fields[i].patch;
|
||||
this->fields.structure[i].image_read_only = fields[i].image_read_only;
|
||||
this->fields.structure[i].image_write_only = fields[i].image_write_only;
|
||||
this->fields.structure[i].image_coherent = fields[i].image_coherent;
|
||||
this->fields.structure[i].image_volatile = fields[i].image_volatile;
|
||||
this->fields.structure[i].image_restrict = fields[i].image_restrict;
|
||||
this->fields.structure[i].precision = fields[i].precision;
|
||||
this->fields.structure[i].explicit_xfb_buffer =
|
||||
fields[i].explicit_xfb_buffer;
|
||||
this->fields.structure[i].xfb_buffer = fields[i].xfb_buffer;
|
||||
this->fields.structure[i].xfb_stride = fields[i].xfb_stride;
|
||||
}
|
||||
|
||||
mtx_unlock(&glsl_type::mutex);
|
||||
|
@@ -955,10 +955,12 @@ struct glsl_struct_field {
|
||||
unsigned implicit_sized_array:1;
|
||||
#ifdef __cplusplus
|
||||
glsl_struct_field(const struct glsl_type *_type, const char *_name)
|
||||
: type(_type), name(_name), location(-1), interpolation(0), centroid(0),
|
||||
: type(_type), name(_name), location(-1), offset(0), xfb_buffer(0),
|
||||
xfb_stride(0), interpolation(0), centroid(0),
|
||||
sample(0), matrix_layout(GLSL_MATRIX_LAYOUT_INHERITED), patch(0),
|
||||
precision(GLSL_PRECISION_NONE), image_read_only(0), image_write_only(0),
|
||||
image_coherent(0), image_volatile(0), image_restrict(0)
|
||||
image_coherent(0), image_volatile(0), image_restrict(0),
|
||||
explicit_xfb_buffer(0), implicit_sized_array(0)
|
||||
{
|
||||
/* empty */
|
||||
}
|
||||
|
Reference in New Issue
Block a user