mirror of
https://github.com/javalsai/lidm.git
synced 2025-08-30 18:08:00 +02:00
perf: better and efficient vec impl
This commit is contained in:
@@ -14,18 +14,20 @@ void read_press(u_char *, char *);
|
||||
void strcln(char **dest, const char *source);
|
||||
|
||||
struct Vector {
|
||||
uint32_t length;
|
||||
uint32_t alloc_len;
|
||||
uint16_t alloc_size;
|
||||
void** pages;
|
||||
uint32_t length;
|
||||
uint32_t capacity;
|
||||
void **pages;
|
||||
};
|
||||
|
||||
struct Vector vec_new();
|
||||
int vec_push(struct Vector*, void* item);
|
||||
void vec_free(struct Vector*);
|
||||
void vec_clear(struct Vector*);
|
||||
void vec_reset(struct Vector*);
|
||||
void* vec_pop(struct Vector*); // won't free it, nor shrink vec list space
|
||||
void* vec_get(struct Vector*, size_t index);
|
||||
int vec_resize(struct Vector *, size_t size);
|
||||
int vec_reserve(struct Vector *, size_t size);
|
||||
int vec_reserve_exact(struct Vector *, size_t size);
|
||||
int vec_push(struct Vector *, void *item);
|
||||
void vec_free(struct Vector *);
|
||||
void vec_clear(struct Vector *);
|
||||
void vec_reset(struct Vector *);
|
||||
void *vec_pop(struct Vector *); // won't free it, nor shrink vec list space
|
||||
void *vec_get(struct Vector *, size_t index);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user