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:
@@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user