Repository: lucy-clownfish Updated Branches: refs/heads/master d73098d1e -> c8f1158d0
Make NumUtil decode functions take const pointers Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/31c25673 Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/31c25673 Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/31c25673 Branch: refs/heads/master Commit: 31c25673bebd449b7916fcc9735f8aecd0606826 Parents: d73098d Author: Nick Wellnhofer <[email protected]> Authored: Tue Aug 12 20:48:29 2014 +0200 Committer: Nick Wellnhofer <[email protected]> Committed: Tue Aug 12 20:49:29 2014 +0200 ---------------------------------------------------------------------- .../core/Clownfish/Test/Util/TestNumberUtils.c | 44 ++++++++++--------- runtime/core/Clownfish/Util/NumberUtils.cfh | 46 ++++++++++---------- 2 files changed, 46 insertions(+), 44 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/31c25673/runtime/core/Clownfish/Test/Util/TestNumberUtils.c ---------------------------------------------------------------------- diff --git a/runtime/core/Clownfish/Test/Util/TestNumberUtils.c b/runtime/core/Clownfish/Test/Util/TestNumberUtils.c index 09dc894..adc529a 100644 --- a/runtime/core/Clownfish/Test/Util/TestNumberUtils.c +++ b/runtime/core/Clownfish/Test/Util/TestNumberUtils.c @@ -109,25 +109,26 @@ test_c32(TestBatchRunner *runner) { char *encoded = (char*)CALLOCATE(amount, sizeof(char)); char *target = encoded; char *limit = target + amount; + const char *decode; for (set_num = 0; set_num < num_sets; set_num++) { - char *skip; + const char *skip; ints = TestUtils_random_u64s(ints, count, mins[set_num], limits[set_num]); target = encoded; for (size_t i = 0; i < count; i++) { NumUtil_encode_c32((uint32_t)ints[i], &target); } - target = encoded; + decode = encoded; skip = encoded; for (size_t i = 0; i < count; i++) { - TEST_INT_EQ(runner, NumUtil_decode_c32(&target), (long)ints[i], + TEST_INT_EQ(runner, NumUtil_decode_c32(&decode), (long)ints[i], "c32 %lu", (long)ints[i]); NumUtil_skip_cint(&skip); - if (target > limit) { THROW(ERR, "overrun"); } + if (decode > limit) { THROW(ERR, "overrun"); } } - TEST_TRUE(runner, skip == target, "skip %lu == %lu", - (unsigned long)skip, (unsigned long)target); + TEST_TRUE(runner, skip == decode, "skip %lu == %lu", + (unsigned long)skip, (unsigned long)decode); target = encoded; for (size_t i = 0; i < count; i++) { @@ -136,22 +137,22 @@ test_c32(TestBatchRunner *runner) { TEST_TRUE(runner, target == limit, "padded c32 uses 5 bytes (%lu == %lu)", (unsigned long)target, (unsigned long)limit); - target = encoded; + decode = encoded; skip = encoded; for (size_t i = 0; i < count; i++) { - TEST_INT_EQ(runner, NumUtil_decode_c32(&target), (long)ints[i], + TEST_INT_EQ(runner, NumUtil_decode_c32(&decode), (long)ints[i], "padded c32 %lu", (long)ints[i]); NumUtil_skip_cint(&skip); - if (target > limit) { THROW(ERR, "overrun"); } + if (decode > limit) { THROW(ERR, "overrun"); } } - TEST_TRUE(runner, skip == target, "skip padded %lu == %lu", - (unsigned long)skip, (unsigned long)target); + TEST_TRUE(runner, skip == decode, "skip padded %lu == %lu", + (unsigned long)skip, (unsigned long)decode); } target = encoded; NumUtil_encode_c32(UINT32_MAX, &target); - target = encoded; - TEST_INT_EQ(runner, NumUtil_decode_c32(&target), UINT32_MAX, "c32 UINT32_MAX"); + decode = encoded; + TEST_INT_EQ(runner, NumUtil_decode_c32(&decode), UINT32_MAX, "c32 UINT32_MAX"); FREEMEM(encoded); FREEMEM(ints); @@ -169,33 +170,34 @@ test_c64(TestBatchRunner *runner) { char *encoded = (char*)CALLOCATE(amount, sizeof(char)); char *target = encoded; char *limit = target + amount; + const char *decode; for (set_num = 0; set_num < num_sets; set_num++) { - char *skip; + const char *skip; ints = TestUtils_random_u64s(ints, count, mins[set_num], limits[set_num]); target = encoded; for (size_t i = 0; i < count; i++) { NumUtil_encode_c64(ints[i], &target); } - target = encoded; + decode = encoded; skip = encoded; for (size_t i = 0; i < count; i++) { - uint64_t got = NumUtil_decode_c64(&target); + uint64_t got = NumUtil_decode_c64(&decode); TEST_TRUE(runner, got == ints[i], "c64 %" PRIu64 " == %" PRIu64, got, ints[i]); - if (target > limit) { THROW(ERR, "overrun"); } + if (decode > limit) { THROW(ERR, "overrun"); } NumUtil_skip_cint(&skip); } - TEST_TRUE(runner, skip == target, "skip %lu == %lu", - (unsigned long)skip, (unsigned long)target); + TEST_TRUE(runner, skip == decode, "skip %lu == %lu", + (unsigned long)skip, (unsigned long)decode); } target = encoded; NumUtil_encode_c64(UINT64_MAX, &target); - target = encoded; - uint64_t got = NumUtil_decode_c64(&target); + decode = encoded; + uint64_t got = NumUtil_decode_c64(&decode); TEST_TRUE(runner, got == UINT64_MAX, "c64 UINT64_MAX"); FREEMEM(encoded); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/31c25673/runtime/core/Clownfish/Util/NumberUtils.cfh ---------------------------------------------------------------------- diff --git a/runtime/core/Clownfish/Util/NumberUtils.cfh b/runtime/core/Clownfish/Util/NumberUtils.cfh index 7589f94..b436d90 100644 --- a/runtime/core/Clownfish/Util/NumberUtils.cfh +++ b/runtime/core/Clownfish/Util/NumberUtils.cfh @@ -50,17 +50,17 @@ inert class Clownfish::Util::NumberUtils nickname NumUtil { /** Interpret a sequence of bytes as a big-endian unsigned 16-bit int. */ inert inline uint16_t - decode_bigend_u16(void *source); + decode_bigend_u16(const void *source); /** Interpret a sequence of bytes as a big-endian unsigned 32-bit int. */ inert inline uint32_t - decode_bigend_u32(void *source); + decode_bigend_u32(const void *source); /** Interpret a sequence of bytes as a big-endian unsigned 64-bit int. */ inert inline uint64_t - decode_bigend_u64(void *source); + decode_bigend_u64(const void *source); /** Encode a 32-bit floating point number as 4 bytes in the buffer * provided, using big-endian byte order. @@ -78,13 +78,13 @@ inert class Clownfish::Util::NumberUtils nickname NumUtil { * byte order. */ inert inline float - decode_bigend_f32(void *source); + decode_bigend_f32(const void *source); /** Interpret a sequence of bytes as a 64-bit float stored in big-endian * byte order. */ inert inline double - decode_bigend_f64(void *source); + decode_bigend_f64(const void *source); /** Encode a C32 at the space pointed to by <code>dest</code>. As a side * effect, <code>dest</code> will be advanced to immediately after the end @@ -113,19 +113,19 @@ inert class Clownfish::Util::NumberUtils nickname NumUtil { * C32. */ inert inline uint32_t - decode_c32(char **source); + decode_c32(const char **source); /** Read a C64 from the buffer pointed to by <code>source</code>. As a * side effect, advance the pointer, consuming the bytes occupied by the * C64. */ inert inline uint64_t - decode_c64(char **source); + decode_c64(const char **source); /** Advance <code>source</code> past one encoded C32 or C64. */ inert inline void - skip_cint(char **source); + skip_cint(const char **source); /** Interpret <code>array</code> as an array of bits; return true if the * bit at <code>tick</code> is set, false otherwise. @@ -225,15 +225,15 @@ cfish_NumUtil_encode_bigend_u64(uint64_t value, void *dest_ptr) { } static CFISH_INLINE uint16_t -cfish_NumUtil_decode_bigend_u16(void *source) { - uint8_t *const buf = (uint8_t*)source; +cfish_NumUtil_decode_bigend_u16(const void *source) { + const uint8_t *const buf = (const uint8_t*)source; return ((uint16_t)buf[0] << 8) | ((uint16_t)buf[1]); } static CFISH_INLINE uint32_t -cfish_NumUtil_decode_bigend_u32(void *source) { - uint8_t *const buf = (uint8_t*)source; +cfish_NumUtil_decode_bigend_u32(const void *source) { + const uint8_t *const buf = (const uint8_t*)source; return ((uint32_t)buf[0] << 24) | ((uint32_t)buf[1] << 16) | ((uint32_t)buf[2] << 8) | @@ -241,8 +241,8 @@ cfish_NumUtil_decode_bigend_u32(void *source) { } static CFISH_INLINE uint64_t -cfish_NumUtil_decode_bigend_u64(void *source) { - uint8_t *const buf = (uint8_t*)source; +cfish_NumUtil_decode_bigend_u64(const void *source) { + const uint8_t *const buf = (const uint8_t*)source; uint64_t high_bits = ((uint32_t)buf[0] << 24) | ((uint32_t)buf[1] << 16) | ((uint32_t)buf[2] << 8) | @@ -281,7 +281,7 @@ cfish_NumUtil_encode_bigend_f64(double value, void *dest_ptr) { } static CFISH_INLINE float -cfish_NumUtil_decode_bigend_f32(void *source) { +cfish_NumUtil_decode_bigend_f32(const void *source) { union { float f; uint32_t u32; } duo; memcpy(&duo, source, sizeof(float)); #ifdef CFISH_LITTLE_END @@ -291,7 +291,7 @@ cfish_NumUtil_decode_bigend_f32(void *source) { } static CFISH_INLINE double -cfish_NumUtil_decode_bigend_f64(void *source) { +cfish_NumUtil_decode_bigend_f64(const void *source) { union { double d; uint64_t u64; } duo; memcpy(&duo, source, sizeof(double)); #ifdef CFISH_LITTLE_END @@ -369,8 +369,8 @@ cfish_NumUtil_encode_padded_c32(uint32_t value, char **out_buf) { } while (0) static CFISH_INLINE uint32_t -cfish_NumUtil_decode_c32(char **source_ptr) { - char *source = *source_ptr; +cfish_NumUtil_decode_c32(const char **source_ptr) { + const char *source = *source_ptr; uint32_t decoded; CFISH_NUMUTIL_DECODE_CINT(decoded, source); *source_ptr = source; @@ -378,8 +378,8 @@ cfish_NumUtil_decode_c32(char **source_ptr) { } static CFISH_INLINE uint64_t -cfish_NumUtil_decode_c64(char **source_ptr) { - char *source = *source_ptr; +cfish_NumUtil_decode_c64(const char **source_ptr) { + const char *source = *source_ptr; uint64_t decoded; CFISH_NUMUTIL_DECODE_CINT(decoded, source); *source_ptr = source; @@ -387,10 +387,10 @@ cfish_NumUtil_decode_c64(char **source_ptr) { } static CFISH_INLINE void -cfish_NumUtil_skip_cint(char **source_ptr) { - uint8_t *ptr = *(uint8_t**)source_ptr; +cfish_NumUtil_skip_cint(const char **source_ptr) { + const uint8_t *ptr = *(const uint8_t**)source_ptr; while ((*ptr++ & 0x80) != 0) { } - *source_ptr = (char*)ptr; + *source_ptr = (const char*)ptr; } static CFISH_INLINE bool
