Skip to content

Commit 3f3aad4

Browse files
committed
Fix zigzag encoding for large signed integers
1 parent 687d549 commit 3f3aad4

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/ocaml_protoc_plugin/deserialize.ml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ let error_required_field_missing index spec = Result.raise (`Required_field_miss
3030
let decode_zigzag v =
3131
let open Infix.Int64 in
3232
match v land 0x01L = 0L with
33-
| true -> v / 2L
34-
| false -> (v / 2L * -1L) - 1L
33+
| true -> v lsr 1
34+
| false -> (v lsr 1 * -1L) - 1L
3535

3636
let decode_zigzag_unboxed v =
3737
match v land 0x01 = 0 with
38-
| true -> v / 2
39-
| false -> (v / 2 * -1) - 1
38+
| true -> v lsr 1
39+
| false -> (v lsr 1 * -1) - 1
4040

4141
let int_of_uint32 =
4242
let open Int32 in

0 commit comments

Comments
 (0)