void *scalanative_alloc_large(void *info, size_t size) { size = MathUtils_RoundToNextMultiple(size, WORD_SIZE); void **alloc = (void **)Heap_AllocLarge(heap, size); *alloc = info; return (void *)alloc; }
INLINE void *scalanative_alloc_large(void *info, size_t size) { size = MathUtils_RoundToNextMultiple(size, ALLOCATION_ALIGNMENT); void **alloc = (void **)Heap_AllocLarge(&heap, size); *alloc = info; return (void *)alloc; }
word_t *Heap_Alloc(Heap *heap, uint32_t objectSize) { assert(objectSize % ALLOCATION_ALIGNMENT == 0); if (objectSize >= LARGE_BLOCK_SIZE) { return Heap_AllocLarge(heap, objectSize); } else { return Heap_AllocSmall(heap, objectSize); } }