Inline most array methods
This commit is contained in:
parent
d3ef106c4f
commit
4d231e8ddc
@ -561,7 +561,7 @@ void log_mode(log_t *logdata, const char *ircmask, const char *channel,
|
|||||||
channel, modes);
|
channel, modes);
|
||||||
for (i = 0; i < array_count(mode_args); i++) {
|
for (i = 0; i < array_count(mode_args); i++) {
|
||||||
snprintf(tmpbuf2, LOGLINE_MAXLEN, "%s %s", tmpbuf,
|
snprintf(tmpbuf2, LOGLINE_MAXLEN, "%s %s", tmpbuf,
|
||||||
array_get(mode_args, i));
|
(char *)array_get(mode_args, i));
|
||||||
tmp = tmpbuf;
|
tmp = tmpbuf;
|
||||||
tmpbuf = tmpbuf2;
|
tmpbuf = tmpbuf2;
|
||||||
tmpbuf2 = tmp;
|
tmpbuf2 = tmp;
|
||||||
|
38
src/util.c
38
src/util.c
@ -701,12 +701,6 @@ array_t *array_new(void)
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
int array_includes(array_t *a, int index)
|
|
||||||
{
|
|
||||||
assert(index >= 0);
|
|
||||||
return a->elemc > index;
|
|
||||||
}
|
|
||||||
|
|
||||||
void array_ensure(array_t *a, int index)
|
void array_ensure(array_t *a, int index)
|
||||||
{
|
{
|
||||||
assert(index >= 0);
|
assert(index >= 0);
|
||||||
@ -718,18 +712,6 @@ void array_ensure(array_t *a, int index)
|
|||||||
a->elemc = index + 1;
|
a->elemc = index + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void array_set(array_t *a, int index, void *ptr)
|
|
||||||
{
|
|
||||||
array_ensure(a, index);
|
|
||||||
a->elemv[index] = ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *array_get(array_t *a, int index)
|
|
||||||
{
|
|
||||||
assert(array_includes(a, index));
|
|
||||||
return a->elemv[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
array_t *array_extract(array_t *a, int index, int upto)
|
array_t *array_extract(array_t *a, int index, int upto)
|
||||||
{
|
{
|
||||||
array_t *ret;
|
array_t *ret;
|
||||||
@ -752,26 +734,6 @@ array_t *array_extract(array_t *a, int index, int upto)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void array_push(array_t *a, void *ptr)
|
|
||||||
{
|
|
||||||
array_ensure(a, a->elemc + 1);
|
|
||||||
a->elemv[a->elemc - 1] = ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *array_pop(array_t *a)
|
|
||||||
{
|
|
||||||
if (a->elemc == 0)
|
|
||||||
return NULL;
|
|
||||||
if (a->elemc == 1) {
|
|
||||||
void *ptr = a->elemv[0];
|
|
||||||
free(a->elemv);
|
|
||||||
a->elemv = NULL;
|
|
||||||
a->elemc = 0;
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
return a->elemv[--a->elemc];
|
|
||||||
}
|
|
||||||
|
|
||||||
void array_deinit(array_t *a)
|
void array_deinit(array_t *a)
|
||||||
{
|
{
|
||||||
if (a->elemv)
|
if (a->elemv)
|
||||||
|
45
src/util.h
45
src/util.h
@ -16,6 +16,7 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
/* Warning: must be in order, 0 = less output */
|
/* Warning: must be in order, 0 = less output */
|
||||||
#define LOG_FATAL 0
|
#define LOG_FATAL 0
|
||||||
@ -153,17 +154,51 @@ char *bip_strdup(const char *str);
|
|||||||
|
|
||||||
void array_init(array_t *a);
|
void array_init(array_t *a);
|
||||||
array_t *array_new(void);
|
array_t *array_new(void);
|
||||||
int array_includes(array_t *a, int index);
|
|
||||||
void array_ensure(array_t *a, int index);
|
void array_ensure(array_t *a, int index);
|
||||||
void array_set(array_t *a, int index, void *ptr);
|
|
||||||
void *array_get(array_t *a, int index);
|
|
||||||
array_t *array_extract(array_t *a, int index, int upto);
|
array_t *array_extract(array_t *a, int index, int upto);
|
||||||
void array_push(array_t *a, void *ptr);
|
|
||||||
void *array_pop(array_t *a);
|
|
||||||
void array_deinit(array_t *a);
|
void array_deinit(array_t *a);
|
||||||
void array_free(array_t *a);
|
void array_free(array_t *a);
|
||||||
static inline int array_count(array_t *a)
|
static inline int array_count(array_t *a)
|
||||||
{
|
{
|
||||||
return a->elemc;
|
return a->elemc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int array_includes(array_t *a, int index)
|
||||||
|
{
|
||||||
|
assert(index >= 0);
|
||||||
|
return a->elemc > index;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void array_set(array_t *a, int index, void *ptr)
|
||||||
|
{
|
||||||
|
array_ensure(a, index);
|
||||||
|
a->elemv[index] = ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void *array_get(array_t *a, int index)
|
||||||
|
{
|
||||||
|
assert(array_includes(a, index));
|
||||||
|
return a->elemv[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void array_push(array_t *a, void *ptr)
|
||||||
|
{
|
||||||
|
array_ensure(a, a->elemc + 1);
|
||||||
|
a->elemv[a->elemc - 1] = ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void *array_pop(array_t *a)
|
||||||
|
{
|
||||||
|
if (a->elemc == 0)
|
||||||
|
return NULL;
|
||||||
|
if (a->elemc == 1) {
|
||||||
|
void *ptr = a->elemv[0];
|
||||||
|
free(a->elemv);
|
||||||
|
a->elemv = NULL;
|
||||||
|
a->elemc = 0;
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
return a->elemv[--a->elemc];
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user