fixes for 64 bit build

This commit is contained in:
aap 2020-05-16 14:34:51 +02:00
parent b21f49ad6b
commit c54d3ba2ab
4 changed files with 40 additions and 11 deletions

View file

@ -59,6 +59,16 @@ void FlushObrsPrintfs()
void *
RwMallocAlign(RwUInt32 size, RwUInt32 align)
{
#ifdef FIX_BUGS
uintptr ptralign = align-1;
void *mem = (void *)malloc(size + sizeof(uintptr) + ptralign);
ASSERT(mem != nil);
void *addr = (void *)((((uintptr)mem) + sizeof(uintptr) + ptralign) & ~ptralign);
ASSERT(addr != nil);
#else
void *mem = (void *)malloc(size + align);
ASSERT(mem != nil);
@ -66,6 +76,7 @@ RwMallocAlign(RwUInt32 size, RwUInt32 align)
void *addr = (void *)((((uintptr)mem) + align) & ~(align - 1));
ASSERT(addr != nil);
#endif
*(((void **)addr) - 1) = mem;