Revert "Revert "revert-revert-erasure and erasure fixes (#3833)" (#3855)" (#3889)

This reverts commit 596f611ede.
This commit is contained in:
Rob Walker
2019-04-18 21:56:43 -07:00
committed by GitHub
parent 475a74d37f
commit 6eac5951ed
13 changed files with 707 additions and 789 deletions

View File

@@ -372,7 +372,11 @@ pub const BLOB_FLAG_IS_CODING: u32 = 0x1;
impl Blob {
pub fn new(data: &[u8]) -> Self {
let mut blob = Self::default();
assert!(data.len() <= blob.data.len());
let data_len = cmp::min(data.len(), blob.data.len());
let bytes = &data[..data_len];
blob.data[..data_len].copy_from_slice(bytes);
blob.meta.size = blob.data_size() as usize;
@@ -459,8 +463,8 @@ impl Blob {
LittleEndian::read_u64(&self.data[SIZE_RANGE])
}
pub fn set_data_size(&mut self, ix: u64) {
LittleEndian::write_u64(&mut self.data[SIZE_RANGE], ix);
pub fn set_data_size(&mut self, size: u64) {
LittleEndian::write_u64(&mut self.data[SIZE_RANGE], size);
}
pub fn data(&self) -> &[u8] {