aboutsummaryrefslogtreecommitdiffstats
path: root/src/internals.h
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2016-04-26 23:17:02 +0200
committerMattias Andrée <maandree@kth.se>2016-04-26 23:17:02 +0200
commitc07798feb5475b47562d6f9e90a564fc1121d25e (patch)
treed7c9577a9974ff8f04b000278c3937b26096ed0a /src/internals.h
parentzzero1 did not guarantee that all arguments were evaulated exactly once, thus made static inline (diff)
downloadlibzahl-c07798feb5475b47562d6f9e90a564fc1121d25e.tar.gz
libzahl-c07798feb5475b47562d6f9e90a564fc1121d25e.tar.bz2
libzahl-c07798feb5475b47562d6f9e90a564fc1121d25e.tar.xz
Add, and use, libzahl_memfailure for conciseness, also fix possible unset errno
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/internals.h')
-rw-r--r--src/internals.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/internals.h b/src/internals.h
index 6454a21..40dd74d 100644
--- 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;