aboutsummaryrefslogtreecommitdiff
path: root/ebml/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-01-14 20:48:16 +0100
committermetamuffin <metamuffin@disroot.org>2023-01-14 20:48:16 +0100
commit274fd00f24864736a9690bee5c3983b9716ab949 (patch)
tree7274b178ac91a495f972ad2fb378547c3226313b /ebml/src
parentf452df18749b13f9d83a6ea679361d195b4a9ae1 (diff)
downloadjellything-274fd00f24864736a9690bee5c3983b9716ab949.tar
jellything-274fd00f24864736a9690bee5c3983b9716ab949.tar.bz2
jellything-274fd00f24864736a9690bee5c3983b9716ab949.tar.zst
about to refactor parsing
Diffstat (limited to 'ebml/src')
-rw-r--r--ebml/src/write.rs8
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);