This is an automated email from the ASF dual-hosted git repository. cliffjansen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/qpid-cpp.git
The following commit(s) were added to refs/heads/master by this push: new 9be8db5 QPID-8453: fix boundary test between map8 and map32 encodings for AMQP 1.0 messages 9be8db5 is described below commit 9be8db506b10584872dd14f8fef5cc8c53118f79 Author: Cliff Jansen <cliffjan...@apache.org> AuthorDate: Mon Jul 13 10:18:14 2020 -0700 QPID-8453: fix boundary test between map8 and map32 encodings for AMQP 1.0 messages --- src/qpid/amqp/MapEncoder.cpp | 4 +++- src/qpid/amqp/MapSizeCalculator.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/qpid/amqp/MapEncoder.cpp b/src/qpid/amqp/MapEncoder.cpp index cf8ef4e..43e1954 100644 --- a/src/qpid/amqp/MapEncoder.cpp +++ b/src/qpid/amqp/MapEncoder.cpp @@ -116,9 +116,11 @@ void MapEncoder::handleString(const CharSequence& key, const CharSequence& value void MapEncoder::writeMetaData(size_t size, size_t count, const Descriptor* d) { - if (count > 255 || size > 255) { + + if (count > 255 || (size+1) > 255) { writeMap32MetaData((uint32_t) size, (uint32_t) count, d); } else { + /* can use more compact format */ writeMap8MetaData((uint8_t) size, (uint8_t) count, d); } } diff --git a/src/qpid/amqp/MapSizeCalculator.cpp b/src/qpid/amqp/MapSizeCalculator.cpp index 2da1521..4107df6 100644 --- a/src/qpid/amqp/MapSizeCalculator.cpp +++ b/src/qpid/amqp/MapSizeCalculator.cpp @@ -139,7 +139,7 @@ size_t MapSizeCalculator::getTotalSizeRequired(const Descriptor* d) const size_t result(size); if (d) result += d->getSize(); result += 1/*typecode*/; - if (count * 2 > 255 || size > 255) { + if (count * 2 > 255 || (size+1) > 255) { result += 4/*size*/ + 4/*count*/; } else { result += 1/*size*/ + 1/*count*/; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org