summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2013-10-08 15:09:05 +0000
committerAndrew Stitcher <astitcher@apache.org>2013-10-08 15:09:05 +0000
commit5e34514e352c9e538234c9a49add49efe3ea9d85 (patch)
tree877142e65bb4903ee5f4e4cc6eb20c98d42bc2ec /qpid/cpp/src
parent62d20c967559b900e84bd4baddc04b49d02e57c0 (diff)
downloadqpid-python-5e34514e352c9e538234c9a49add49efe3ea9d85.tar.gz
QPID-5129: Alignment issues on ARM
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1530302 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp6
-rw-r--r--qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp6
-rw-r--r--qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp3
3 files changed, 10 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp b/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp
index f820c3c075..270ebdd69e 100644
--- a/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp
+++ b/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp
@@ -270,12 +270,14 @@ deq_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
// Get and check header
_deq_hdr.hdr_copy(h);
rd_cnt = sizeof(rec_hdr);
- _deq_hdr._deq_rid = *(u_int64_t*)((char*)rptr + rd_cnt);
+ //_deq_hdr._deq_rid = *(u_int64_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_deq_hdr._deq_rid, (char*)rptr + rd_cnt, sizeof(u_int64_t));
rd_cnt += sizeof(u_int64_t);
#if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
rd_cnt += sizeof(u_int32_t); // Filler 0
#endif
- _deq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_deq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_deq_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt = _deq_hdr.size();
chk_hdr();
if (_deq_hdr._xidsize)
diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp b/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp
index 468599836b..94f42066a0 100644
--- a/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp
+++ b/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp
@@ -360,7 +360,8 @@ enq_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
#if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
rd_cnt += sizeof(u_int32_t); // Filler 0
#endif
- _enq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_enq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_enq_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt += sizeof(std::size_t);
#if defined(JRNL_LITTLE_ENDIAN) && defined(JRNL_32_BIT)
rd_cnt += sizeof(u_int32_t); // Filler 0
@@ -368,7 +369,8 @@ enq_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
#if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
rd_cnt += sizeof(u_int32_t); // Filler 1
#endif
- _enq_hdr._dsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_enq_hdr._dsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_enq_hdr._dsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt = _enq_hdr.size();
chk_hdr();
if (_enq_hdr._xidsize + (_enq_hdr.is_external() ? 0 : _enq_hdr._dsize))
diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp b/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp
index 918a6ce902..1008e7700e 100644
--- a/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp
+++ b/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp
@@ -270,7 +270,8 @@ txn_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
#if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
rd_cnt += sizeof(u_int32_t); // Filler 0
#endif
- _txn_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ //_txn_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
+ std::memcpy((void*)&_txn_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
rd_cnt = _txn_hdr.size();
chk_hdr();
_buff = std::malloc(_txn_hdr._xidsize);