The following code: uint32_t k; memcpy (&k, data, sizeof (k)); computes different data depending on platform endianness.
That causes test_xmmsv_serialize_coll_match test to fail as collection order is serialized in wrong order. Signed-off-by: Sergei Trofimovich <sly...@gentoo.org> --- src/lib/xmmstypes/xmmsv_dict.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/xmmstypes/xmmsv_dict.c b/src/lib/xmmstypes/xmmsv_dict.c index 5ebe4eb3..32533285 100644 --- a/src/lib/xmmstypes/xmmsv_dict.c +++ b/src/lib/xmmstypes/xmmsv_dict.c @@ -66,8 +66,10 @@ _xmmsv_dict_hash (const void *key, int len) while (len >= 4) { - uint32_t k; - memcpy (&k, data, sizeof (k)); + uint32_t k = data [0] + | data [1] << 8 + | data [2] << 16 + | data [3] << 24; k *= m; k ^= k >> r; -- 2.13.3 -- _______________________________________________ Xmms2-devel mailing list Xmms2-devel@lists.xmms2.org https://lists.xmms2.org/cgi-bin/mailman/listinfo/xmms2-devel