mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-18 03:29:49 +02:00
The same fix as follows on C++ code.
https://github.com/msgpack/msgpack-c/pull/38
This commit is contained in:
@@ -116,7 +116,13 @@ struct unpack_array {
|
|||||||
};
|
};
|
||||||
|
|
||||||
inline void unpack_array_item(object& c, object const& o)
|
inline void unpack_array_item(object& c, object const& o)
|
||||||
{ c.via.array.ptr[c.via.array.size++] = o; }
|
{
|
||||||
|
#if defined(__GNUC__) && !defined(__clang__)
|
||||||
|
memcpy(&c.via.array.ptr[c.via.array.size++], &o, sizeof(object));
|
||||||
|
#else /* __GNUC__ && !__clang__ */
|
||||||
|
c.via.array.ptr[c.via.array.size++] = o;
|
||||||
|
#endif /* __GNUC__ && !__clang__ */
|
||||||
|
}
|
||||||
|
|
||||||
struct unpack_map {
|
struct unpack_map {
|
||||||
bool operator()(unpack_user& u, unsigned int n, object& o) const {
|
bool operator()(unpack_user& u, unsigned int n, object& o) const {
|
||||||
@@ -130,8 +136,13 @@ struct unpack_map {
|
|||||||
|
|
||||||
inline void unpack_map_item(object& c, object const& k, object const& v)
|
inline void unpack_map_item(object& c, object const& k, object const& v)
|
||||||
{
|
{
|
||||||
|
#if defined(__GNUC__) && !defined(__clang__)
|
||||||
|
memcpy(&c.via.map.ptr[c.via.map.size].key, &k, sizeof(object));
|
||||||
|
memcpy(&c.via.map.ptr[c.via.map.size].val, &v, sizeof(object));
|
||||||
|
#else /* __GNUC__ && !__clang__ */
|
||||||
c.via.map.ptr[c.via.map.size].key = k;
|
c.via.map.ptr[c.via.map.size].key = k;
|
||||||
c.via.map.ptr[c.via.map.size].val = v;
|
c.via.map.ptr[c.via.map.size].val = v;
|
||||||
|
#endif /* __GNUC__ && !__clang__ */
|
||||||
++c.via.map.size;
|
++c.via.map.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -675,7 +686,6 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
size_t off_;
|
|
||||||
char const* start_;
|
char const* start_;
|
||||||
char const* current_;
|
char const* current_;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user