diff --git a/src/lib.rs b/src/lib.rs index 8492dd7..cd4a77b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -395,7 +395,7 @@ pub mod binary { pub fn get_var_int(&mut self) -> i32 { let raw: u32 = self.get_unsigned_var_int(); - (((raw << 31) >> 31) ^ raw >> 1 ^ (raw & (1 << 31))) as i32 + ((raw >> 1) as i32) ^ (-((raw & 1) as i32) & 1) } pub fn put_var_int(&mut self, value: i32) { diff --git a/tests/lib.rs b/tests/lib.rs index 7b5b30e..ff07477 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -8,9 +8,9 @@ mod tests { #[test] fn test() { let mut stream = Stream::new(vec![], 0); - stream.put_unsigned_var_int(2322211); + stream.put_var_int(2322211); println!("{:?}", stream.get_buffer()); - println!("{}", stream.get_unsigned_var_int()); + println!("{}", stream.get_var_int()); } }