Merge pull request #13249 from shenweip/mem_alloc

Correct the alignment size when allocating memory at a position
This commit is contained in:
Unknown W. Brackets 2020-08-05 10:02:40 -04:00 committed by GitHub
commit c2255fd10a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -163,13 +163,13 @@ u32 BlockAllocator::AllocAt(u32 position, u32 size, const char *tag)
alignedPosition &= ~(grain_ - 1);
// Since the position was decreased, size must increase.
alignedSize += alignedPosition - position;
alignedSize += position - alignedPosition;
}
// Upalign size to grain.
alignedSize = (alignedSize + grain_ - 1) & ~(grain_ - 1);
// Tell the caller the allocated size from their requested starting position.
size = alignedSize - (alignedPosition - position);
size = alignedSize - (position - alignedPosition);
Block *bp = GetBlockFromAddress(alignedPosition);
if (bp != NULL)