8000 Travis: restore build on GCC 4.4 · joglosemarduino/ArduinoJson@77f38e4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 77f38e4

Browse files
committed
Travis: restore build on GCC 4.4
1 parent 16ddfbc commit 77f38e4

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

.travis.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ sudo: false
22
language: cpp
33
matrix:
44
include:
5+
- compiler: gcc
6+
addons:
7+
apt:
8+
sources: ['ubuntu-toolchain-r-test']
9+
packages: ['g++-4.4']
10+
env: SCRIPT=cmake GCC=4.4
511
- compiler: gcc
612
addons:
713
apt:

src/ArduinoJson/Configuration.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
#ifndef ARDUINOJSON_LITTLE_ENDIAN
140140
#if defined(_MSC_VER) || \
141141
(defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \
142-
(defined(__LITTLE_ENDIAN__))
142+
defined(__LITTLE_ENDIAN__) || defined(__i386) || defined(__x86_64)
143143
#define ARDUINOJSON_LITTLE_ENDIAN 1
144144
#else
145145
#define ARDUINOJSON_LITTLE_ENDIAN 0

src/ArduinoJson/MsgPack/endianess.hpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,30 +9,33 @@
99

1010
namespace ARDUINOJSON_NAMESPACE {
1111

12-
inline void fixEndianess(uint8_t* p, integral_constant<size_t, 8>) {
12+
#if ARDUINOJSON_LITTLE_ENDIAN
13+
inline void fixEndianess(uint8_t *p, integral_constant<size_t, 8>) {
1314
swap(p[0], p[7]);
1415
swap(p[1], p[6]);
1516
swap(p[2], p[5]);
1617
swap(p[3], p[4]);
1718
}
1819

19-
inline void fixEndianess(uint8_t* p, integral_constant<size_t, 4>) {
20+
inline void fixEndianess(uint8_t *p, integral_constant<size_t, 4>) {
2021
swap(p[0], p[3]);
2122
swap(p[1], p[2]);
2223
}
2324

24-
inline void fixEndianess(uint8_t* p, integral_constant<size_t, 2>) {
25+
inline void fixEndianess(uint8_t *p, integral_constant<size_t, 2>) {
2526
swap(p[0], p[1]);
2627
}
2728

28-
inline void fixEndianess(uint8_t*, integral_constant<size_t, 1>) {}
29+
inline void fixEndianess(uint8_t *, integral_constant<size_t, 1>) {}
2930

3031
template <typename T>
31-
inline void fixEndianess(T& value) {
32-
#if ARDUINOJSON_LITTLE_ENDIAN
71F7 33-
fixEndianess(reinterpret_cast<uint8_t*>(&value),
32+
inline void fixEndianess(T &value) {
33+
fixEndianess(reinterpret_cast<uint8_t *>(&value),
3434
integral_constant<size_t, sizeof(T)>());
35-
#endif
3635
}
36+
#else
37+
template <typename T>
38+
inline void fixEndianess(T &) {}
39+
#endif
3740

3841
} // namespace ARDUINOJSON_NAMESPACE

0 commit comments

Comments
 (0)
0