Fix non-erasure blob nulling

This commit is contained in:
Stephen Akridge
2018-06-05 12:30:08 -07:00
committed by Greg Fitzgerald
parent a06535d7ed
commit a710d95243

View File

@ -319,19 +319,27 @@ fn recv_window(
if !is_coding { if !is_coding {
contq.push_back(window[k].clone().expect("clone in fn recv_window")); contq.push_back(window[k].clone().expect("clone in fn recv_window"));
*consumed += 1; *consumed += 1;
} else {
let block_start = *consumed - (*consumed % erasure::NUM_CODED);
let coding_end = block_start + erasure::NUM_CODED;
// We've received all this block's data blobs, go and null out the window now
for j in block_start..coding_end {
window[j % WINDOW_SIZE] = None;
}
*consumed += erasure::MAX_MISSING; #[cfg(not(feature = "erasure"))]
debug!( {
"skipping processing coding blob k: {} consumed: {}", window[k] = None;
k, *consumed }
); } else {
#[cfg(feature = "erasure")]
{
let block_start = *consumed - (*consumed % erasure::NUM_CODED);
let coding_end = block_start + erasure::NUM_CODED;
// We've received all this block's data blobs, go and null out the window now
for j in block_start..coding_end {
window[j % WINDOW_SIZE] = None;
}
*consumed += erasure::MAX_MISSING;
debug!(
"skipping processing coding blob k: {} consumed: {}",
k, *consumed
);
}
} }
} }
} }