From 1f4391f56e5f95a44529bf89661c69c821fbb5c4 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 17 Jan 2020 21:11:39 +0100 Subject: [PATCH] Endian Swapper buffer swapper changes reverted --- serialize/EndianSwapper.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/serialize/EndianSwapper.h b/serialize/EndianSwapper.h index 6c391316..25fb681e 100644 --- a/serialize/EndianSwapper.h +++ b/serialize/EndianSwapper.h @@ -47,17 +47,25 @@ public: #endif } + /** + * Swap endianness of buffer entries + * Template argument specifies buffer type + * @param out + * @param in + * @param size + */ template - static void swap(uint8_t * out, const uint8_t * in, uint32_t size) { + static void swap(T * out, const T * in, uint32_t size) { #ifndef BYTE_ORDER_SYSTEM #error BYTE_ORDER_SYSTEM not defined #elif BYTE_ORDER_SYSTEM == LITTLE_ENDIAN + const uint8_t * in_buffer = reinterpret_cast(in); + uint8_t * out_buffer = reinterpret_cast(out); for (uint8_t count = 0; count < size; count++) { for(uint8_t i = 0; i < sizeof(T);i++) { - out[sizeof(T)* (count + 1) - i - 1] = in[count * sizeof(T) + i]; + out_buffer[sizeof(T)* (count + 1) - i - 1] = in_buffer[count * sizeof(T) + i]; } } - return; #elif BYTE_ORDER_SYSTEM == BIG_ENDIAN memcpy(out, in, size*sizeof(T));