@@ -36,26 +36,17 @@ static inline void convert_from_le(T * /*value*/)
3636
3737template <typename T, std::enable_if_t <sizeof (T) == 2 , int > = 0 >
3838static inline void convert_from_le (T * value) {
39- uint16_t temp;
40- memcpy (&temp, value, sizeof (uint16_t ));
41- temp = le16toh (temp);
42- memcpy (value, &temp, sizeof (uint16_t ));
39+ *((uint16_t *)value) = le16toh (*((uint16_t *)value));
4340}
4441
4542template <typename T, std::enable_if_t <sizeof (T) == 4 , int > = 0 >
4643static inline void convert_from_le (T * value) {
47- uint32_t temp;
48- memcpy (&temp, value, sizeof (uint32_t ));
49- temp = le32toh (temp);
50- memcpy (value, &temp, sizeof (uint32_t ));
44+ *((uint32_t *)value) = le32toh (*((uint32_t *)value));
5145}
5246
5347template <typename T, std::enable_if_t <sizeof (T) == 8 , int > = 0 >
5448static inline void convert_from_le (T * value) {
55- uint64_t temp;
56- memcpy (&temp, value, sizeof (uint64_t ));
57- temp = le64toh (temp);
58- memcpy (value, &temp, sizeof (uint64_t ));
49+ *((uint64_t *)value) = le64toh (*((uint64_t *)value));
5950}
6051#else
6152#error Unexpected or undefined __BYTE_ORDER__
0 commit comments