From 0f5ffd82663317aa73602cda7a55470d6d659567 Mon Sep 17 00:00:00 2001 From: "Charles E. Rolke" Date: Fri, 14 Oct 2011 14:57:58 +0000 Subject: QPID-3540 Typecasting and alignment requirements for various platforms In RefCountedBuffer: 1. Pad the instantiantion address of RefCountedBuffer class up to an 8-byte boundary. 2. Add (void *) casts to 'store' pointer to prevent warnings about alignment. In qpid-perftest: 1. Don't pull a size_t object from an arbitrary buffer address. Instead, memcopy the object by bytes. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1183378 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/tests/qpid-perftest.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'qpid/cpp/src/tests/qpid-perftest.cpp') diff --git a/qpid/cpp/src/tests/qpid-perftest.cpp b/qpid/cpp/src/tests/qpid-perftest.cpp index 3aff742c62..dd81354adb 100644 --- a/qpid/cpp/src/tests/qpid-perftest.cpp +++ b/qpid/cpp/src/tests/qpid-perftest.cpp @@ -644,7 +644,9 @@ struct SubscribeThread : public Client { // // For now verify order only for a single publisher. size_t offset = opts.uniqueData ? 5 /*marker is 'data:'*/ : 0; - size_t n = *reinterpret_cast(msg.getData().data() + offset); + size_t n; + memcpy (&n, reinterpret_cast(msg.getData().data() + offset), + sizeof(n)); if (opts.pubs == 1) { if (opts.subs == 1 || opts.mode == FANOUT) verify(n==expect, "==", expect, n); else verify(n>=expect, ">=", expect, n); -- cgit v1.2.1