rcx

library of miscellaneous bits of C code
git clone git://git.rr3.xyz/rcx
Log | Files | Refs | README | LICENSE

commit ad49ce7df1d5fe6a11532d233d2bcd20e037f94e
parent 476e3e02f403667bd38807631fd4c7c6b6b088b3
Author: Robert Russell <robertrussell.72001@gmail.com>
Date:   Wed,  7 Sep 2022 15:16:51 -0700

Make erealloc functions return int 0

This way erealloc can be easily replaced by ereallocX. In
particular, this is necessary for vectors and deques.

Diffstat:
Minc/rcx/alloc.h | 8++++----
Minc/rcx/rcx.h | 2++
Msrc/alloc.c | 3++-
3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/inc/rcx/alloc.h b/inc/rcx/alloc.h @@ -22,9 +22,9 @@ void *r_ealloc(usize size); void *r_eallocz(usize size); void *r_eallocn(usize len, usize size); void *r_eallocnz(usize len, usize size); -void r_erealloc(void *p, usize size); -void r_ereallocz(void *p, usize osize, usize nsize); -void r_ereallocn(void *p, usize len, usize size); -void r_ereallocnz(void *p, usize olen, usize nlen, usize size); +int r_erealloc(void *p, usize size); +int r_ereallocz(void *p, usize osize, usize nsize); +int r_ereallocn(void *p, usize len, usize size); +int r_ereallocnz(void *p, usize olen, usize nlen, usize size); void free(void *p); diff --git a/inc/rcx/rcx.h b/inc/rcx/rcx.h @@ -1,5 +1,7 @@ #pragma once +/* TODO: consistency check: cast style: (void*) vs (void *) */ + #include <inttypes.h> #include <stddef.h> diff --git a/src/alloc.c b/src/alloc.c @@ -81,11 +81,12 @@ EALLOC(n, usize len, usize size)(len, size) EALLOC(nz, usize len, usize size)(len, size) #define EREALLOC(mods, ...)\ - void r_erealloc##mods(void *p, __VA_ARGS__) {\ + int r_erealloc##mods(void *p, __VA_ARGS__) {\ int ret = r_realloc##mods(p, EREALLOC_AUX #define EREALLOC_AUX(...)\ __VA_ARGS__);\ if (ret < 0) r_fatalf("allocation failure");\ + return 0;\ } EREALLOC(, usize size)(size)