diff options
author | Mattias Andrée <maandree@kth.se> | 2024-08-18 09:43:16 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2024-08-18 09:43:16 +0200 |
commit | 715b59e5002b971a987c3c8a2e1b3e61d80388f7 (patch) | |
tree | aa64aa9fed94388056432f0f4a2180d5c03523fd /aligned_memdup.c | |
parent | Add @since for definitions added in version 1.0 and 1.1 (diff) | |
parent | Fix tests and libsimple_arraycpy and libsimple_arraymove (diff) | |
download | libsimple-715b59e5002b971a987c3c8a2e1b3e61d80388f7.tar.gz libsimple-715b59e5002b971a987c3c8a2e1b3e61d80388f7.tar.bz2 libsimple-715b59e5002b971a987c3c8a2e1b3e61d80388f7.tar.xz |
Merge tag '1.2' into since
Version 1.2
Diffstat (limited to 'aligned_memdup.c')
-rw-r--r-- | aligned_memdup.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/aligned_memdup.c b/aligned_memdup.c index d66a846..7b2ca71 100644 --- a/aligned_memdup.c +++ b/aligned_memdup.c @@ -6,9 +6,9 @@ void * libsimple_aligned_memdup(const void *s, size_t alignment, size_t n) { + size_t size = n + (alignment - n % alignment) % alignment; void *ret; - n = n ? n : 1; - ret = aligned_alloc(alignment, n + (alignment - n % alignment) % alignment); + ret = aligned_alloc(alignment, size ? size : alignment); if (!ret) return NULL; return memcpy(ret, s, n); @@ -17,6 +17,7 @@ libsimple_aligned_memdup(const void *s, size_t alignment, size_t n) #else #include "test.h" +#undef memset int main(void) @@ -26,7 +27,7 @@ main(void) void *p = libsimple_aligned_memdup(s, 4, 5); assert(p); assert(p != s); - assert(!((uintptr_t)s % 4)); + assert(!((uintptr_t)p % 4)); if (have_custom_malloc()) { assert((info = get_allocinfo(p))); assert(info->size == 8); |