diff --git a/apis/rust/node/src/node/arrow_utils.rs b/apis/rust/node/src/node/arrow_utils.rs index 247c76ae..955d6f0b 100644 --- a/apis/rust/node/src/node/arrow_utils.rs +++ b/apis/rust/node/src/node/arrow_utils.rs @@ -10,8 +10,8 @@ fn required_data_size_inner(array: &ArrayData, next_offset: &mut usize) { let layout = arrow::array::layout(array.data_type()); for (buffer, spec) in array.buffers().iter().zip(&layout.buffers) { // consider alignment padding - if let BufferSpec::FixedWidth { alignment, .. } = spec { - *next_offset = (*next_offset + alignment - 1) / alignment * alignment; + if let BufferSpec::FixedWidth { alignment, .. } = *spec { + *next_offset = (*next_offset).div_ceil(alignment) * alignment; } *next_offset += buffer.len(); } @@ -41,8 +41,8 @@ fn copy_array_into_sample_inner( *next_offset, ); // add alignment padding - if let BufferSpec::FixedWidth { alignment, .. } = spec { - *next_offset = (*next_offset + alignment - 1) / alignment * alignment; + if let BufferSpec::FixedWidth { alignment, .. } = *spec { + *next_offset = (*next_offset).div_ceil(alignment) * alignment; } target_buffer[*next_offset..][..len].copy_from_slice(buffer.as_slice());