From f932d4de439c6472d34ed4bbf530fca13b84d73a Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 6 Jan 2026 23:43:05 +0100 Subject: object insert --- common/object/src/buffer.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'common/object/src/buffer.rs') diff --git a/common/object/src/buffer.rs b/common/object/src/buffer.rs index dbde833..2f9d066 100644 --- a/common/object/src/buffer.rs +++ b/common/object/src/buffer.rs @@ -24,8 +24,9 @@ impl ObjectBuffer { let mut temp = Vec::new(); for (tag, val) in fields { tags.push(tag.0); + let off = (values.len() as u32) << 2; if val.is_aligned() { - offsets.push((values.len() as u32) << 2); + offsets.push(off); val.store_aligned(&mut values); } else { temp.clear(); @@ -35,7 +36,7 @@ impl ObjectBuffer { pad += 1; temp.push(0); } - offsets.push(((values.len() as u32) << 2) | pad); + offsets.push(off | pad); values.extend(bytemuck::cast_slice(&temp)); // ok bc. temp length is a whole number of dwords } } @@ -60,3 +61,13 @@ impl From> for ObjectBuffer { })) } } + +#[inline] +pub(super) fn pad_vec(temp: &mut Vec) -> u32 { + let mut pad = 0; + while temp.len() % 4 != 0 { + pad += 1; + temp.push(0); + } + pad +} -- cgit v1.3