From d6987458f21cf1890045f2606d0f8ec4d2225b44 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 3 Mar 2016 23:02:59 +0100 Subject: Cleanup and fix bug in ztrunc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/internals.h | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/internals.h') diff --git a/src/internals.h b/src/internals.h index 2ab5cc7..6d05bc2 100644 --- a/src/internals.h +++ b/src/internals.h @@ -1,6 +1,9 @@ /* See LICENSE file for copyright and license details. */ #include "../zahl.h" +#include +#include + #define BITS_PER_CHAR 32 #define LB_BITS_PER_CHAR 5 #define ZAHL_CHAR_MAX UINT32_MAX @@ -43,6 +46,23 @@ extern z_t libzahl_tmp_divmod_ds[BITS_PER_CHAR]; extern jmp_buf libzahl_jmp_buf; extern int libzahl_set_up; -#define FAILURE_JUMP() (longjmp(libzahl_jmp_buf, 1)) +#define FAILURE_JUMP() longjmp(libzahl_jmp_buf, 1) +#define zmemcpy(d, s, n) memcpy(d, s, (n) * sizeof(zahl_char_t)) +#define zmemmove(d, s, n) memmove(d, s, (n) * sizeof(zahl_char_t)) +#define zmemset(a, v, n) memset(a, v, (n) * sizeof(zahl_char_t)) +#define zmemcmp(a, b, n) memcmp(a, b, (n) * sizeof(zahl_char_t)) + +#define SET_SIGNUM(a, signum) ((a)->sign = (signum)) +#define SET(a, b) do { if (a != b) zset(a, b)} while (0) + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) -#define SET_SIGNUM(a, signum) ((a)->sign = (signum)) +static inline void +zahl_realloc(z_t *p, size_t n) +{ + p->chars = realloc(p->chars, n * sizeof(zahl_char_t)); + if (!p->chars) + FAILURE_JUMP(); + p->alloced = n; +} -- cgit v1.2.3-70-g09d2