From b98433ce8c1f12c432b55195fb6a57d67d2635c4 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Fri, 6 Feb 2009 14:30:03 -0800 Subject: Implementations for ZigZag decoding. --- pbstream.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'pbstream.c') diff --git a/pbstream.c b/pbstream.c index c300153..4112a7c 100644 --- a/pbstream.c +++ b/pbstream.c @@ -102,14 +102,14 @@ bool get_64_le(char **buf, char *end, uint64_t *out_value) return PBSTREAM_STATUS_OK; } -int32_t zigzag_decode_32(uint64_t src) +int32_t zigzag_decode_32(uint64_t n) { - return 0; /* TODO */ + return (n >> 1) ^ -(int32_t)(n & 1); } -int64_t zigzag_decode_64(uint64_t src) +int64_t zigzag_decode_64(uint64_t n) { - return 0; /* TODO */ + return (n >> 1) ^ (int64_t)(n & 1); } /* Parses the next field-number/wire-value pair from the stream of bytes -- cgit v1.2.3