diff options
author | David Robillard <d@drobilla.net> | 2019-04-13 18:47:36 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-04-13 19:48:23 +0200 |
commit | 72b0caa0ca029b83a5a1ad87d9035faea7897c72 (patch) | |
tree | aa2baae1a97e49db76328b45d855bf1ab58ee814 | |
parent | 00eec656ceb6d2ce7807d8da57fcad41367fa490 (diff) | |
download | serd-72b0caa0ca029b83a5a1ad87d9035faea7897c72.tar.gz serd-72b0caa0ca029b83a5a1ad87d9035faea7897c72.tar.bz2 serd-72b0caa0ca029b83a5a1ad87d9035faea7897c72.zip |
Fix node alignment on 32-bit ARM
-rw-r--r-- | src/node.c | 2 | ||||
-rw-r--r-- | src/reader.c | 1 | ||||
-rw-r--r-- | src/stack.h | 4 |
3 files changed, 5 insertions, 2 deletions
@@ -288,7 +288,7 @@ serd_node_copy(const SerdNode* node) const size_t size = serd_node_total_size(node); SerdNode* copy = (SerdNode*)serd_calloc_aligned(size + 3, serd_node_align); - assert((intptr_t)node % serd_node_align == 0); + assert((intptr_t)copy % serd_node_align == 0); memcpy(copy, node, size); return copy; diff --git a/src/reader.c b/src/reader.c index 95508849..50784ffc 100644 --- a/src/reader.c +++ b/src/reader.c @@ -87,6 +87,7 @@ push_node_padded(SerdReader* reader, size_t maxlen, void* mem = serd_stack_push_aligned( &reader->stack, sizeof(SerdNode) + maxlen + 1, sizeof(SerdNode)); + assert((intptr_t)mem % sizeof(SerdNode) == 0); if (!mem) { return NULL; } diff --git a/src/stack.h b/src/stack.h index cf2d4f26..3610d0c3 100644 --- a/src/stack.h +++ b/src/stack.h @@ -17,6 +17,8 @@ #ifndef SERD_STACK_H #define SERD_STACK_H +#include "system.h" + #include <assert.h> #include <stdbool.h> #include <stddef.h> @@ -38,7 +40,7 @@ static inline SerdStack serd_stack_new(size_t size) { SerdStack stack; - stack.buf = (char*)calloc(1, size); + stack.buf = (char*)serd_calloc_aligned(size, sizeof(SerdNode)); stack.buf_size = size; stack.size = SERD_STACK_BOTTOM; return stack; |