From: Mika Lindqvist Date: Sat, 8 Apr 2017 06:15:37 +0000 (+0300) Subject: Align in 16-byte boundary when UNALIGNED_OK is undefined. X-Git-Tag: 1.9.9-b1~639 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e7e5e55b881edbafb2c79652ad87a1f6d7e602e;p=thirdparty%2Fzlib-ng.git Align in 16-byte boundary when UNALIGNED_OK is undefined. --- diff --git a/test/minigzip.c b/test/minigzip.c index f7e3758db..e19bda1dc 100644 --- a/test/minigzip.c +++ b/test/minigzip.c @@ -30,6 +30,10 @@ # include #endif +#ifndef UNALIGNED_OK +# include +#endif + #if defined(WIN32) || defined(__CYGWIN__) # include # include @@ -70,7 +74,11 @@ void myfree (void *, void *); void *myalloc(void *q, unsigned n, unsigned m) { (void)q; +#ifndef UNALIGNED_OK + return memalign(16, n * m); +#else return calloc(n, m); +#endif } void myfree(void *q, void *p) diff --git a/zutil.c b/zutil.c index ff9e8fa69..70ffb84e0 100644 --- a/zutil.c +++ b/zutil.c @@ -9,6 +9,9 @@ #ifdef WITH_GZFILEOP # include "gzguts.h" #endif +#ifndef UNALIGNED_OK +# include "malloc.h" +#endif const char * const z_errmsg[10] = { (const char *)"need dictionary", /* Z_NEED_DICT 2 */ @@ -119,8 +122,12 @@ const char * ZEXPORT PREFIX(zError)(int err) void ZLIB_INTERNAL *zcalloc (void *opaque, unsigned items, unsigned size) { (void)opaque; +#ifndef UNALIGNED_OK + return memalign(16, items * size); +#else return sizeof(unsigned int) > 2 ? (void *)malloc(items * size) : (void *)calloc(items, size); +#endif } void ZLIB_INTERNAL zcfree (void *opaque, void *ptr)