diff options
author | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-10-12 03:04:00 +0000 |
commit | 0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch) | |
tree | 416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/dk3mem.c | |
parent | fdb18507cd80dc17f5a5256153d34668b4f4e61c (diff) |
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk3mem.c')
-rw-r--r-- | support/dktools/dk3mem.c | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/support/dktools/dk3mem.c b/support/dktools/dk3mem.c deleted file mode 100644 index ee033ae176..0000000000 --- a/support/dktools/dk3mem.c +++ /dev/null @@ -1,328 +0,0 @@ -/* -Copyright (C) 2011-2020, Dirk Krause -SPDX-License-Identifier: BSD-3-Clause -*/ - -/* - WARNING: This file was generated by the dkct program (see - http://dktools.sourceforge.net/ for details). - Changes you make here will be lost if dkct is run again! - You should modify the original source and run dkct on it. - Original source: dk3mem.ctr -*/ - -/** @file dk3mem.c The dk3mem module. -*/ - - -#line 166 "dk3mem.ctr" - -#include "dk3all.h" - - - - - - -#line 172 "dk3mem.ctr" - - - -void -dk3mem_res(void *mp, size_t sz) -/* {{{ */ -{ - if((NULL != mp) && (0 != sz)) { -#if DK3_HAVE_MEMSET - memset(mp, (int)'\0', sz); -#else -#if DK3_HAVE_BZERO - bzero(mp, sz); -#else - register char *ptr; - register size_t i; - ptr = (char *)mp; i = sz; - while(i--) { *(ptr++) = '\0'; } -#endif -#endif - } -} -/* }}} */ - - - -void -dk3mem_cpy(void *dp, void const *sp, size_t sz) -/* {{{ */ -{ - if((NULL != dp) && (NULL != sp) && (0 != sz)) { -#if DK3_HAVE_MEMCPY - memcpy(dp, sp, sz); -#else -#if DK3_HAVE_BCOPY - bcopy(sp, dp, sz); -#else - register char *mydp; - register char const *mysp; - register size_t i; - mydp = (char *)dp; - mysp = (char const *)sp; - i = sz; - while(i--) { *(mydp++) = *(mysp++); } -#endif -#endif - } -} -/* }}} */ - - - -int -dk3mem_cmp(void const *s1, void const *s2, size_t sz) -/* {{{ */ -{ - int back = 0; - if(NULL != s1) { - if(NULL != s2) { -#if DK3_HAVE_MEMCMP - back = memcmp(s1, s2, sz); -#else -#if DK3_HAVE_BCMP - back = bcmp(s1, s2, sz); -#else - register unsigned char const *mys1; - register unsigned char const *mys2; - register size_t i; - register int myback = 0; - mys1 = (unsigned char const *)s1; - mys2 = (unsigned char const *)s2; - for(i = 0; ((i < sz) && (0 == myback)); i++) { - if(*mys1 > *mys2) { - myback = 1; - } else { - if(*mys1 < *mys2) { - myback = -1; - } else { - mys1++; mys2++; - } - } - } - back = myback; -#endif -#endif - } else { back = 1; } - } else { - if(s2) { back = -1; } - } - return back; -} -/* }}} */ - - - -void * -dk3mem_malloc_app(size_t sz, dk3_app_t *app) -/* {{{ */ -{ - void *back = NULL; - char c8buffer[64]; /* Buffer to show number of bytes. */ - dkChar dkbuffer[64]; /* Buffer to show number of bytes. */ - - -#line 275 "dk3mem.ctr" - if(0 != sz) { -#if DK3_ON_WINDOWS && (defined(_MSC_VER)) && (_MSC_VER > 1100) - - -#line 278 "dk3mem.ctr" - back = (void *)LocalAlloc((LMEM_FIXED | LMEM_ZEROINIT), sz); -#else -#if DK3_HAVE_MALLOC && DK3_HAVE_FREE - - -#line 282 "dk3mem.ctr" - back = malloc(sz); - - -#line 284 "dk3mem.ctr" -#else -#error "The malloc and free functions are not available here!" -#endif -#endif - if(NULL != back) { - -#line 289 "dk3mem.ctr" - dk3mem_res(back, sz); - } else { - -#line 291 "dk3mem.ctr" - if(NULL != app) { - -#line 292 "dk3mem.ctr" - /* ERROR: Failed to allocate n bytes! */ - if(0 != dk3ma_um_to_c8_string(c8buffer,sizeof(c8buffer),(dk3_um_t)sz)) { - (void)dk3str_cnv_c8_to_str_app( - dkbuffer, DK3_SIZEOF(dkbuffer,dkChar), c8buffer, NULL - ); - dk3app_log_i3(app, DK3_LL_ERROR, 12, 13, dkbuffer); - } else { - dk3app_log_i1(app, DK3_LL_ERROR, 14); - } - } - } - } - -#line 304 "dk3mem.ctr" - return back; -} -/* }}} */ - - -void * -dk3mem_malloc(size_t sz) -/* {{{ */ -{ - void *back; - back = dk3mem_malloc_app(sz, NULL); - return back; -} -/* }}} */ - - - -size_t -dk3mem_mul_size_t(size_t sz, size_t ne, int *ec) -/* {{{ */ -{ - size_t back = 0; - if (0 < sz) { - if ((DK3_SIZE_T_MAX / sz) < ne) { - if (NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } - } else { - back = (sz * ne); - } - } else { - if (NULL != ec) { *ec = DK3_ERROR_MATH_OUT_OF_RANGE; } - } - return back; -} -/* }}} */ - - - -size_t -dk3mem_add_size_t(size_t a, size_t b, int *ec) -{ - size_t back = 0; - if((DK3_SIZE_T_MAX - a) >= b) { back = a + b; } - else { if(NULL != ec) { *ec = DK3_ERROR_MATH_OVERFLOW; } } - return back; -} - - -void * -dk3mem_alloc_app(size_t sz, size_t ne, dk3_app_t *app) -/* {{{ */ -{ - void *back = NULL; - size_t as = 0; /* Allocation size. */ - char c8b1[64]; /* Buffer for element size. */ - char c8b2[64]; /* Buffer for number of elements. */ - dkChar dkb1[64]; /* Buffer for element size. */ - dkChar dkb2[64]; /* Buffer for number of elements. */ - int ok = 0; /* Flag: Success. */ - - -#line 363 "dk3mem.ctr" - if((0 != sz) && (0 != ne)) { - as = dk3mem_mul_size_t(sz, ne, NULL); - if(0 != as) { - back = dk3mem_malloc_app(as, app); - } else { - if(NULL != app) { - /* ERROR: Numeric overflow! */ - ok = 0; - dkb1[0] = dkb2[0] = dkT('\0'); - if(0 != dk3ma_um_to_c8_string(c8b1, sizeof(c8b1),(dk3_um_t)sz)) { - if(0 != dk3ma_um_to_c8_string(c8b2, sizeof(c8b2),(dk3_um_t)ne)) { - (void)dk3str_cnv_c8_to_str_app( - dkb1, DK3_SIZEOF(dkb1,dkChar), c8b1, NULL - ); - (void)dk3str_cnv_c8_to_str_app( - dkb2, DK3_SIZEOF(dkb2,dkChar), c8b2, NULL - ); - ok = 1; - } - } - if(0 != ok) { - dk3app_log_i5(app, DK3_LL_ERROR, 16, 17, 18, dkb1, dkb2); - } else { - dk3app_log_i1(app, DK3_LL_ERROR, 15); - } - } - } - } - -#line 391 "dk3mem.ctr" - return back; -} -/* }}} */ - - - -void * -dk3mem_alloc(size_t sz, size_t ne) -/* {{{ */ -{ - void *back; - back = dk3mem_alloc_app(sz, ne, NULL); - return back; -} -/* }}} */ - - - -void -dk3mem_free (void *po) -/* {{{ */ -{ - if(NULL != po) { -#if DK3_ON_WINDOWS && (defined(_MSC_VER)) && (_MSC_VER > 1100) - LocalFree((HLOCAL)po); -#else -#if DK3_HAVE_MALLOC && DK3_HAVE_FREE - free(po); -#endif -#endif - } -} -/* }}} */ - -int -dk3mem_reset_secure(void *mp, size_t sz) -{ -#if !DK3_ON_WINDOWS - char *ptr; -#endif - int back = 0; - if ((NULL != mp) && (0 < sz)) { -#if DK3_ON_WINDOWS - SecureZeroMemory(mp, sz); - back = 1; -#else - dk3mem_res(mp, sz); - back = 1; - ptr = (char *)mp; - while (sz--) { - if ('\0' != *(ptr++)) { - back = 0; - } - } -#endif - } - return back; -} - - -/* vim: set ai sw=2 filetype=c foldmethod=marker foldopen=all : */ - |