mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-30 07:10:27 +01:00
util: fix uninitialized table
Most of the 256 values in the 'generic_to_slot' table were supposed to
be initialized with the default value 0xff, but were left at zero
(from CALLOC_STRUCT()) instead.
Noticed by clang:
u_linkage.h:60:31: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination;
did you mean to provide an explicit length? [-Wsizeof-pointer-memaccess]
memset(table, 0xff, sizeof(table));
~~~~~ ^~~~~
Also fix a signed/unsigned comparison and a comment typo here.
NOTE: This is a candidate for the 8.0 branch.
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 520521e380)
This commit is contained in:
parent
546abd2503
commit
108d544cae
2 changed files with 7 additions and 5 deletions
|
|
@ -49,15 +49,16 @@ unsigned util_semantic_set_from_program_file(struct util_semantic_set *set, cons
|
|||
*
|
||||
* num_slots is the size of the layout array and hardware limit instead.
|
||||
*
|
||||
* efficient_slots == 0 or efficient_solts == num_slots are typical settings.
|
||||
* efficient_slots == 0 or efficient_slots == num_slots are typical settings.
|
||||
*/
|
||||
void util_semantic_layout_from_set(unsigned char *layout, const struct util_semantic_set *set, unsigned efficient_slots, unsigned num_slots);
|
||||
|
||||
static INLINE void
|
||||
util_semantic_table_from_layout(unsigned char *table, unsigned char *layout, unsigned char first_slot_value, unsigned char num_slots)
|
||||
util_semantic_table_from_layout(unsigned char *table, size_t table_size, unsigned char *layout,
|
||||
unsigned char first_slot_value, unsigned char num_slots)
|
||||
{
|
||||
int i;
|
||||
memset(table, 0xff, sizeof(table));
|
||||
unsigned char i;
|
||||
memset(table, 0xff, table_size);
|
||||
|
||||
for(i = 0; i < num_slots; ++i)
|
||||
table[layout[i]] = first_slot_value + i;
|
||||
|
|
|
|||
|
|
@ -977,7 +977,8 @@ nvfx_fragprog_prepare(struct nvfx_context* nvfx, struct nvfx_fpc *fpc)
|
|||
if(fpc->fp->num_slots > num_texcoords)
|
||||
return FALSE;
|
||||
util_semantic_layout_from_set(fpc->fp->slot_to_generic, &set, 0, num_texcoords);
|
||||
util_semantic_table_from_layout(fpc->generic_to_slot, fpc->fp->slot_to_generic, 0, num_texcoords);
|
||||
util_semantic_table_from_layout(fpc->generic_to_slot, sizeof fpc->generic_to_slot,
|
||||
fpc->fp->slot_to_generic, 0, num_texcoords);
|
||||
|
||||
memset(fpc->fp->slot_to_fp_input, 0xff, sizeof(fpc->fp->slot_to_fp_input));
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue