util/vector: make util_vector_init harder to misuse

Make u_vector_init a wrapper to u_vector_init_pot.  Let both take
(element_count, element_size) as parameters.

Motivated by eed0fc4caf ("vulkan/wsi/wayland: fix an invalid
u_vector_init call")

v2: rename u_vector_init_pot to u_vector_init_pow2

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13201>
This commit is contained in:
Chia-I Wu
2021-10-05 11:58:58 -07:00
committed by Marge Bot
parent 781c0eafcf
commit 8cce6281e6
13 changed files with 45 additions and 38 deletions

View File

@@ -32,6 +32,7 @@
#include <stdint.h>
#include <stdlib.h>
#include "util/macros.h"
#include "util/u_math.h"
#ifdef __cplusplus
extern "C" {
@@ -53,10 +54,23 @@ struct u_vector {
void *data;
};
int u_vector_init(struct u_vector *queue, uint32_t element_size, uint32_t size);
int u_vector_init_pow2(struct u_vector *queue,
uint32_t initial_element_count,
uint32_t element_size);
void *u_vector_add(struct u_vector *queue);
void *u_vector_remove(struct u_vector *queue);
static inline int
u_vector_init(struct u_vector *queue,
uint32_t initial_element_count,
uint32_t element_size)
{
initial_element_count = util_next_power_of_two(initial_element_count);
element_size = util_next_power_of_two(element_size);
return u_vector_init_pow2(queue, initial_element_count, element_size);
}
static inline int
u_vector_length(struct u_vector *queue)
{