From 72b0caa0ca029b83a5a1ad87d9035faea7897c72 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 13 Apr 2019 18:47:36 +0100 Subject: Fix node alignment on 32-bit ARM --- src/node.c | 2 +- src/reader.c | 1 + src/stack.h | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/node.c b/src/node.c index 2f21858e..3a44a954 100644 --- a/src/node.c +++ b/src/node.c @@ -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 #include #include @@ -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; -- cgit v1.2.1