libzahl

big integer library
git clone git://git.suckless.org/libzahl
Log | Files | Refs | README | LICENSE

commit c07798feb5475b47562d6f9e90a564fc1121d25e
parent ef6bf64a3c9139ff1f1b2dce45f91cf826067a33
Author: Mattias Andrée <maandree@kth.se>
Date:   Tue, 26 Apr 2016 23:17:02 +0200

Add, and use, libzahl_memfailure for conciseness, also fix possible unset errno

Signed-off-by: Mattias Andrée <maandree@kth.se>

Diffstat:
Msrc/allocator.c | 7++-----
Msrc/internals.h | 12+++++++++---
Msrc/zsetup.c | 7++-----
Msrc/zstr.c | 4++--
4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/src/allocator.c b/src/allocator.c @@ -22,11 +22,8 @@ libzahl_realloc(z_t a, size_t need) a->chars = new; } else { a->chars = realloc(a->chars, new_size * sizeof(zahl_char_t)); - if (unlikely(!a->chars)) { - if (!errno) /* sigh... */ - errno = ENOMEM; - libzahl_failure(errno); - } + if (unlikely(!a->chars)) + libzahl_memfailure(); } a->alloced = new_size; } diff --git a/src/internals.h b/src/internals.h @@ -135,6 +135,14 @@ libzahl_failure(int error) } static inline void +libzahl_memfailure() +{ + if (!errno) /* sigh... */ + errno = ENOENT; + libzahl_failure(errno); +} + +static inline void zmemcpy(zahl_char_t *restrict d, const zahl_char_t *restrict s, register size_t n) { while (n--) @@ -322,9 +330,7 @@ zinit_temp(z_t a) libzahl_temp_stack = realloc(old, 2 * n * sizeof(*libzahl_temp_stack)); if (unlikely(!libzahl_temp_stack)) { libzahl_temp_stack = old; - if (!errno) /* sigh... */ - errno = ENOMEM; - libzahl_failure(errno); + libzahl_memfailure(); } libzahl_temp_stack_head = libzahl_temp_stack + n; libzahl_temp_stack_end = libzahl_temp_stack_head + n; diff --git a/src/zsetup.c b/src/zsetup.c @@ -45,11 +45,8 @@ zsetup(jmp_buf env) zinit(libzahl_tmp_divmod_ds[i]); libzahl_temp_stack = malloc(256 * sizeof(*libzahl_temp_stack)); - if (unlikely(!libzahl_temp_stack)) { - if (!errno) /* sigh... */ - errno = ENOMEM; - libzahl_failure(errno); - } + if (unlikely(!libzahl_temp_stack)) + libzahl_memfailure(); libzahl_temp_stack_head = libzahl_temp_stack; libzahl_temp_stack_end = libzahl_temp_stack + 256; } diff --git a/src/zstr.c b/src/zstr.c @@ -63,7 +63,7 @@ zstr(z_t a, char *b) if (unlikely(zzero(a))) { if (unlikely(!b) && unlikely(!(b = malloc(2)))) - libzahl_failure(errno); + libzahl_memfailure(); b[0] = '0'; b[1] = 0; return b; @@ -72,7 +72,7 @@ zstr(z_t a, char *b) n = zstr_length(a, 10); if (unlikely(!b) && unlikely(!(b = malloc(n + 1)))) - libzahl_failure(errno); + libzahl_memfailure(); neg = znegative(a); zabs(num, a);