ecs: use std.mem.alignForward to calculate padding
This commit is contained in:
parent
f6d29e7669
commit
dd4d741aed
1 changed files with 3 additions and 2 deletions
|
|
@ -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];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue