ecs: use std.mem.alignForward to calculate padding

This commit is contained in:
dweiller 2022-06-13 00:54:59 +10:00 committed by Stephen Gutekanst
parent f6d29e7669
commit dd4d741aed

View file

@ -154,8 +154,9 @@ pub const ArchetypeStorage = struct {
var offset: usize = 0; var offset: usize = 0;
for (storage.columns) |*column| { for (storage.columns) |*column| {
const align_mod = @ptrToInt(&new_block[offset]) % column.alignment; const addr = @ptrToInt(&new_block[offset]);
const padding = if (align_mod == 0) 0 else column.alignment - align_mod; const aligned_addr = std.mem.alignForward(addr, column.alignment);
const padding = aligned_addr - addr;
offset += padding; offset += padding;
if (storage.capacity > 0) { if (storage.capacity > 0) {
const slice = storage.block[column.offset .. column.offset + storage.capacity * column.size]; const slice = storage.block[column.offset .. column.offset + storage.capacity * column.size];