diff options
author | Brian Paul <[email protected]> | 2019-03-08 10:09:15 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2019-03-08 10:23:11 -0700 |
commit | e5e2be3c737d6770b2973e2c9a84ebba9498487b (patch) | |
tree | 36e3539a29587455f952371c8825b10f02055d55 /src | |
parent | d2cff164cddb142238b6e37faefdbd3c9d2466ab (diff) |
st/mesa: init hash keys with memset(), not designated initializers
Since the compiler may not zero-out padding in the object.
Add a couple comments about this to prevent misunderstandings in
the future.
Fixes: 67d96816ff5 ("st/mesa: move, clean-up shader variant key decls/inits")
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/state_tracker/st_atom_shader.c | 9 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_program.c | 13 |
2 files changed, 17 insertions, 5 deletions
diff --git a/src/mesa/state_tracker/st_atom_shader.c b/src/mesa/state_tracker/st_atom_shader.c index ac7a1a5b64b..a4475e28df7 100644 --- a/src/mesa/state_tracker/st_atom_shader.c +++ b/src/mesa/state_tracker/st_atom_shader.c @@ -112,7 +112,10 @@ st_update_fp( struct st_context *st ) !stfp->variants->key.bitmap) { shader = stfp->variants->driver_shader; } else { - struct st_fp_variant_key key = {0}; + struct st_fp_variant_key key; + + /* use memset, not an initializer to be sure all memory is zeroed */ + memset(&key, 0, sizeof(key)); key.st = st->has_shareable_shaders ? NULL : st; @@ -168,7 +171,9 @@ st_update_vp( struct st_context *st ) stvp->variants->key.passthrough_edgeflags == st->vertdata_edgeflags) { st->vp_variant = stvp->variants; } else { - struct st_vp_variant_key key = {0}; + struct st_vp_variant_key key; + + memset(&key, 0, sizeof(key)); key.st = st->has_shareable_shaders ? NULL : st; diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 5e43a2eaa45..7015e503d12 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -1772,7 +1772,10 @@ st_get_cp_variant(struct st_context *st, { struct pipe_context *pipe = st->pipe; struct st_basic_variant *v; - struct st_basic_variant_key key = {0}; + struct st_basic_variant_key key; + + /* use memset, not an initializer to be sure all memory is zeroed */ + memset(&key, 0, sizeof(key)); key.st = st->has_shareable_shaders ? NULL : st; @@ -1995,7 +1998,9 @@ st_precompile_shader_variant(struct st_context *st, switch (prog->Target) { case GL_VERTEX_PROGRAM_ARB: { struct st_vertex_program *p = (struct st_vertex_program *)prog; - struct st_vp_variant_key key = {0}; + struct st_vp_variant_key key; + + memset(&key, 0, sizeof(key)); key.st = st->has_shareable_shaders ? NULL : st; st_get_vp_variant(st, p, &key); @@ -2022,7 +2027,9 @@ st_precompile_shader_variant(struct st_context *st, case GL_FRAGMENT_PROGRAM_ARB: { struct st_fragment_program *p = (struct st_fragment_program *)prog; - struct st_fp_variant_key key = {0}; + struct st_fp_variant_key key; + + memset(&key, 0, sizeof(key)); key.st = st->has_shareable_shaders ? NULL : st; st_get_fp_variant(st, p, &key); |