From 94781061cfd937c37407e6dc4545bfa457aa7971 Mon Sep 17 00:00:00 2001 From: Dave Hickin Date: Fri, 4 Mar 2016 22:56:43 +0000 Subject: [PATCH] fixed bitSet serialization (cherry picked from commit 65ff7ab1c3d8a532472b39af40acaf3480008a8b) Unit tests omitted as require API change. --- src/misc/bitSet.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/misc/bitSet.cpp b/src/misc/bitSet.cpp index 2da4fd8..2b485c0 100644 --- a/src/misc/bitSet.cpp +++ b/src/misc/bitSet.cpp @@ -322,12 +322,14 @@ namespace epics { namespace pvData { SerializeHelper::writeSize(len, buffer, flusher); flusher->ensureBuffer(len); - - for (uint32 i = 0; i < n - 1; i++) + + n = len / 8; + for (uint32 i = 0; i < n; i++) buffer->putLong(words[i]); - - for (uint64 x = words[n - 1]; x != 0; x >>= 8) - buffer->putByte((int8) (x & 0xff)); + + if (n < wordsInUse) + for (uint64 x = words[wordsInUse - 1]; x != 0; x >>= 8) + buffer->putByte((int8) (x & 0xff)); } void BitSet::deserialize(ByteBuffer* buffer, DeserializableControl* control) {