From 53e86f2fa2c59e95eb2cdc063be096193977128b Mon Sep 17 00:00:00 2001 From: Rob Walker Date: Tue, 14 Aug 2018 11:27:15 -0700 Subject: [PATCH] use align! --- src/erasure.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/erasure.rs b/src/erasure.rs index 63a9e7dc58..85c7b6f0dd 100644 --- a/src/erasure.rs +++ b/src/erasure.rs @@ -12,6 +12,12 @@ pub const ERASURE_SET_SIZE: usize = NUM_DATA + NUM_CODING; // total number of bl pub const JERASURE_ALIGN: usize = 4; // data size has to be a multiple of 4 bytes +macro_rules! align { + ($x:expr, $align:expr) => { + $x + ($align - 1) & !($align - 1) + }; +} + #[derive(Debug, PartialEq, Eq)] pub enum ErasureError { NotEnoughBlocksToDecode, @@ -248,10 +254,7 @@ pub fn generate_coding( } // round up to the nearest jerasure alignment - if max_data_size % JERASURE_ALIGN != 0 { - max_data_size -= max_data_size % JERASURE_ALIGN; - max_data_size += JERASURE_ALIGN; - } + align!(max_data_size, JERASURE_ALIGN); trace!("{:x} max_data_size: {}", debug_id, max_data_size);