diff options
| author | metamuffin <metamuffin@disroot.org> | 2023-01-14 20:48:16 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2023-01-14 20:48:16 +0100 |
| commit | 274fd00f24864736a9690bee5c3983b9716ab949 (patch) | |
| tree | 7274b178ac91a495f972ad2fb378547c3226313b | |
| parent | f452df18749b13f9d83a6ea679361d195b4a9ae1 (diff) | |
| download | jellything-274fd00f24864736a9690bee5c3983b9716ab949.tar jellything-274fd00f24864736a9690bee5c3983b9716ab949.tar.bz2 jellything-274fd00f24864736a9690bee5c3983b9716ab949.tar.zst | |
about to refactor parsing
| -rw-r--r-- | ebml/src/write.rs | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/ebml/src/write.rs b/ebml/src/write.rs index f57a5c9..89268d5 100644 --- a/ebml/src/write.rs +++ b/ebml/src/write.rs @@ -148,13 +148,7 @@ pub fn write_vint(w: &mut Vec<u8>, i: u64) -> Result<()> { if i > (1 << 56) - 1 { bail!("vint does not fit"); } - let mut len = 1; - while len <= 8 { - if i < (1 << ((7 * len) - 1)) { - break; - } - len += 1; - } + let len = (64 - i.leading_zeros() as usize) / 7 + 1; let mut bytes = i.to_be_bytes(); let trunc = &mut bytes[(8 - len)..]; trunc[0] |= 1 << (8 - len); |