From dd4d741aedc190f4a565499118109b2aab17e5d2 Mon Sep 17 00:00:00 2001 From: dweiller <4678790+dweiller@users.noreplay.github.com> Date: Mon, 13 Jun 2022 00:54:59 +1000 Subject: [PATCH] ecs: use std.mem.alignForward to calculate padding --- ecs/src/entities.zig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ecs/src/entities.zig b/ecs/src/entities.zig index 757323f2..db9b55fe 100644 --- a/ecs/src/entities.zig +++ b/ecs/src/entities.zig @@ -154,8 +154,9 @@ pub const ArchetypeStorage = struct { var offset: usize = 0; for (storage.columns) |*column| { - const align_mod = @ptrToInt(&new_block[offset]) % column.alignment; - const padding = if (align_mod == 0) 0 else column.alignment - align_mod; + const addr = @ptrToInt(&new_block[offset]); + const aligned_addr = std.mem.alignForward(addr, column.alignment); + const padding = aligned_addr - addr; offset += padding; if (storage.capacity > 0) { const slice = storage.block[column.offset .. column.offset + storage.capacity * column.size];