diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2016-10-18 16:59:15 -0400 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2016-10-18 16:59:15 -0400 |
commit | 02001352246fca709ffb00938ac349512a30dfd6 (patch) | |
tree | c9ffa6e5c86066020ba6108d0e5a9956bc793c64 /indra/llcommon/llmemory.h | |
parent | 8230a9937f3bded847dae6c33e01b44158a7f8ee (diff) | |
parent | 086c1342152895da28d2e0130d09432152604ca8 (diff) |
merge
Diffstat (limited to 'indra/llcommon/llmemory.h')
-rw-r--r-- | indra/llcommon/llmemory.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h index 0fb257aab1..575edddc43 100644 --- a/indra/llcommon/llmemory.h +++ b/indra/llcommon/llmemory.h @@ -110,11 +110,15 @@ template <typename T> T* LL_NEXT_ALIGNED_ADDRESS_64(T* address) #if defined(LL_WINDOWS) return _aligned_malloc(size, align); #else + char* aligned = NULL; void* mem = malloc( size + (align - 1) + sizeof(void*) ); - char* aligned = ((char*)mem) + sizeof(void*); - aligned += align - ((uintptr_t)aligned & (align - 1)); + if (mem) + { + aligned = ((char*)mem) + sizeof(void*); + aligned += align - ((uintptr_t)aligned & (align - 1)); - ((void**)aligned)[-1] = mem; + ((void**)aligned)[-1] = mem; + } return aligned; #endif } |