From: Russell Bryant Date: Mon, 20 Mar 2006 02:00:30 +0000 (+0000) Subject: fix astmm on sparc or any other architecture that doesn't allow unaligned X-Git-Tag: 1.4.0-beta1~2388 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4fa231ed034fca6b2dd7596126456aa373076cf6;p=thirdparty%2Fasterisk.git fix astmm on sparc or any other architecture that doesn't allow unaligned memory access git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@13631 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/astmm.c b/astmm.c index c3b26a3562..3647a79d43 100644 --- a/astmm.c +++ b/astmm.c @@ -38,6 +38,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/options.h" #include "asterisk/lock.h" #include "asterisk/strings.h" +#include "asterisk/unaligned.h" #define SOME_PRIME 563 @@ -104,7 +105,7 @@ static inline void *__ast_alloc_region(size_t size, const enum func_type which, regions[hash] = reg; reg->fence = FENCE_MAGIC; fence = (ptr + reg->len); - *fence = FENCE_MAGIC; + put_unaligned_uint32(fence, FENCE_MAGIC); } ast_mutex_unlock(®lock); if (!reg) { @@ -166,7 +167,7 @@ static void __ast_free_region(void *ptr, const char *file, int lineno, const cha fflush(mmlog); } } - if (*fence != FENCE_MAGIC) { + if (get_unaligned_uint32(fence) != FENCE_MAGIC) { fprintf(stderr, "WARNING: High fence violation at %p, in %s of %s, line %d\n", reg->data, reg->func, reg->file, reg->lineno); if (mmlog) { fprintf(mmlog, "%ld - WARNING: High fence violation at %p, in %s of %s, line %d\n", time(NULL), reg->data, reg->func, reg->file, reg->lineno); @@ -316,7 +317,7 @@ static int handle_show_memory(int fd, int argc, char *argv[]) fflush(mmlog); } } - if (*fence != FENCE_MAGIC) { + if (get_unaligned_uint32(fence) != FENCE_MAGIC) { fprintf(stderr, "WARNING: High fence violation at %p, in %s of %s, line %d\n", reg->data, reg->func, reg->file, reg->lineno); if (mmlog) { fprintf(mmlog, "%ld - WARNING: High fence violation at %p, in %s of %s, line %d\n", time(NULL), reg->data, reg->func, reg->file, reg->lineno);