MINOR: ist: Add `struct ist istalloc(size_t)` and `void istfree(struct ist*)`

`istalloc` allocates memory and returns an `ist` with the size `0` that points
to this allocation.

`istfree` frees the pointed memory and clears the pointer.
This commit is contained in:
Tim Duesterhus 2020-03-05 17:56:32 +01:00 committed by Willy Tarreau
parent e296d3e5f0
commit 35005d01d2
1 changed files with 29 additions and 0 deletions

View File

@ -32,6 +32,10 @@
#include <string.h>
#include <unistd.h>
#ifndef IST_FREESTANDING
#include <stdlib.h>
#endif
#include <common/config.h>
/* ASCII to lower case conversion table */
@ -729,4 +733,29 @@ static inline struct ist iststop(const struct ist ist, char chr)
;
return ist2(ist.ptr, len - 1);
}
#ifndef IST_FREESTANDING
/* This function allocates <size> bytes and returns an `ist` pointing to
* the allocated area with size `0`.
*
* If this function fails to allocate memory the return value is equivalent
* to IST_NULL.
*/
static inline struct ist istalloc(const size_t size)
{
return ist2(malloc(size), 0);
}
/* This function performs the equivalent of free() on the given <ist>.
*
* After this function returns the value of the given <ist> will be
* modified to be equivalent to IST_NULL.
*/
static inline void istfree(struct ist *ist)
{
free(ist->ptr);
*ist = IST_NULL;
}
#endif
#endif