From c07798feb5475b47562d6f9e90a564fc1121d25e Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 26 Apr 2016 23:17:02 +0200 Subject: Add, and use, libzahl_memfailure for conciseness, also fix possible unset errno MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/allocator.c | 7 ++----- src/internals.h | 12 +++++++++--- src/zsetup.c | 7 ++----- src/zstr.c | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/allocator.c b/src/allocator.c index 80668f1..10170ae 100644 --- 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 index 6454a21..40dd74d 100644 --- a/src/internals.h +++ b/src/internals.h @@ -134,6 +134,14 @@ libzahl_failure(int error) longjmp(libzahl_jmp_buf, 1); } +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) { @@ -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 index e36bff3..212a1e9 100644 --- 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 index cd237df..d10cdff 100644 --- 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); -- cgit v1.2.3-70-g09d2