Skip to content

Commit 57790f5

Browse files
committed
Misc zstd_v07 cleanups
1 parent ef2ccc5 commit 57790f5

File tree

1 file changed

+20
-32
lines changed

1 file changed

+20
-32
lines changed

lib/legacy/zstd_v07.rs

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ fn FSEv07_decompress(dst: Writer<'_>, cSrc: &[u8]) -> Result<usize, Error> {
813813
FSEv07_buildDTable(&mut dt, &counting, maxSymbolValue, tableLog)?;
814814
FSEv07_decompress_usingDTable(dst, ip, &dt)
815815
}
816-
unsafe fn HUFv07_readDTableX2(DTable: &mut HUFv07_DTable, src: &[u8]) -> Result<usize, Error> {
816+
fn HUFv07_readDTableX2(DTable: &mut HUFv07_DTable, src: &[u8]) -> Result<usize, Error> {
817817
let mut huffWeight: [u8; HUFv07_SYMBOLVALUE_MAX + 1] = [0; HUFv07_SYMBOLVALUE_MAX + 1];
818818
let mut rankVal: [u32; HUFv07_TABLELOG_ABSOLUTEMAX + 1] = [0; HUFv07_TABLELOG_ABSOLUTEMAX + 1];
819819
let mut tableLog = 0;
@@ -834,33 +834,25 @@ unsafe fn HUFv07_readDTableX2(DTable: &mut HUFv07_DTable, src: &[u8]) -> Result<
834834
dtd.tableLog = tableLog as u8;
835835
DTable.description = dtd;
836836
let dt = DTable.as_x2_mut();
837-
let mut n: u32 = 0;
838837
let mut nextRankStart = 0u32;
839-
n = 1;
840-
while n < tableLog.wrapping_add(1) {
838+
for n in 1..tableLog as usize + 1 {
841839
let current = nextRankStart;
842-
nextRankStart = nextRankStart
843-
.wrapping_add(*rankVal.as_mut_ptr().offset(n as isize) << n.wrapping_sub(1));
844-
*rankVal.as_mut_ptr().offset(n as isize) = current;
845-
n = n.wrapping_add(1);
846-
}
847-
let mut n_0: u32 = 0;
848-
n_0 = 0;
849-
while n_0 < nbSymbols {
850-
let w = *huffWeight.as_mut_ptr().offset(n_0 as isize) as u32;
851-
let length = ((1) << w >> 1) as u32;
852-
let mut i: u32 = 0;
853-
let mut D = HUFv07_DEltX2 { byte: 0, nbBits: 0 };
854-
D.byte = n_0 as u8;
855-
D.nbBits = tableLog.wrapping_add(1).wrapping_sub(w) as u8;
856-
i = *rankVal.as_mut_ptr().offset(w as isize);
857-
while i < (*rankVal.as_mut_ptr().offset(w as isize)).wrapping_add(length) {
840+
nextRankStart += rankVal[n] << (n - 1);
841+
rankVal[n] = current;
842+
}
843+
for n in 0..nbSymbols {
844+
let w = huffWeight[n as usize];
845+
let length = (1 << w >> 1) as u32;
846+
let D = HUFv07_DEltX2 {
847+
byte: n as u8,
848+
nbBits: tableLog.wrapping_add(1).wrapping_sub(w as u32) as u8,
849+
};
850+
let mut i = rankVal[usize::from(w)];
851+
while i < (rankVal[usize::from(w)]).wrapping_add(length) {
858852
dt[i as usize] = D;
859-
i = i.wrapping_add(1);
853+
i += 1;
860854
}
861-
let fresh11 = &mut (*rankVal.as_mut_ptr().offset(w as isize));
862-
*fresh11 = (*fresh11).wrapping_add(length);
863-
n_0 = n_0.wrapping_add(1);
855+
rankVal[usize::from(w)] += length;
864856
}
865857
Ok(iSize)
866858
}
@@ -922,13 +914,11 @@ fn HUFv07_decompress1X2_DCtx(
922914
dst: Writer<'_>,
923915
cSrc: &[u8],
924916
) -> Result<(), Error> {
925-
let mut ip = cSrc;
926-
let hSize = unsafe { HUFv07_readDTableX2(DCtx, ip)? };
917+
let hSize = HUFv07_readDTableX2(DCtx, cSrc)?;
927918
if hSize >= cSrc.len() {
928919
return Err(Error::srcSize_wrong);
929920
}
930-
ip = &ip[hSize..];
931-
HUFv07_decompress1X2_usingDTable_internal(dst, ip, DCtx)
921+
HUFv07_decompress1X2_usingDTable_internal(dst, &cSrc[hSize..], DCtx)
932922
}
933923
unsafe fn HUFv07_decompress4X2_usingDTable_internal(
934924
mut dst: Writer<'_>,
@@ -1078,13 +1068,11 @@ fn HUFv07_decompress4X2_DCtx(
10781068
dst: Writer<'_>,
10791069
cSrc: &[u8],
10801070
) -> Result<usize, Error> {
1081-
let mut ip = cSrc;
1082-
let hSize = unsafe { HUFv07_readDTableX2(dctx, ip)? };
1071+
let hSize = HUFv07_readDTableX2(dctx, cSrc)?;
10831072
if hSize >= cSrc.len() {
10841073
return Err(Error::srcSize_wrong);
10851074
}
1086-
ip = &ip[hSize..];
1087-
unsafe { HUFv07_decompress4X2_usingDTable_internal(dst, ip, dctx) }
1075+
unsafe { HUFv07_decompress4X2_usingDTable_internal(dst, &cSrc[hSize..], dctx) }
10881076
}
10891077
unsafe fn HUFv07_fillDTableX4Level2(
10901078
DTable: &mut [HUFv07_DEltX4],

0 commit comments

Comments
 (0)