diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2013-10-08 15:09:05 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2013-10-08 15:09:05 +0000 |
| commit | 5e34514e352c9e538234c9a49add49efe3ea9d85 (patch) | |
| tree | 877142e65bb4903ee5f4e4cc6eb20c98d42bc2ec /qpid/cpp/src | |
| parent | 62d20c967559b900e84bd4baddc04b49d02e57c0 (diff) | |
| download | qpid-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.cpp | 6 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp | 6 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp | 3 |
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); |
