Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: bmqp protocol Wconv warns #257

Merged
merged 12 commits into from
May 13, 2024
8 changes: 4 additions & 4 deletions src/groups/bmq/bmqp/bmqp_protocol.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@ bool PutHeaderFlags::fromAscii(PutHeaderFlags::Enum* out,
#define CHECKVALUE(M) \
if (bdlb::String::areEqualCaseless(toAscii(PutHeaderFlags::e_##M), \
str.data(), \
str.length())) { \
static_cast<int>(str.length()))) { \
*out = PutHeaderFlags::e_##M; \
return true; \
}
Expand Down Expand Up @@ -628,7 +628,7 @@ bool PushHeaderFlags::fromAscii(PushHeaderFlags::Enum* out,
#define CHECKVALUE(M) \
if (bdlb::String::areEqualCaseless(toAscii(PushHeaderFlags::e_##M), \
str.data(), \
str.length())) { \
static_cast<int>(str.length()))) { \
*out = PushHeaderFlags::e_##M; \
return true; \
}
Expand Down Expand Up @@ -833,7 +833,7 @@ bool StorageHeaderFlags::fromAscii(StorageHeaderFlags::Enum* out,
#define CHECKVALUE(M) \
if (bdlb::String::areEqualCaseless(toAscii(StorageHeaderFlags::e_##M), \
str.data(), \
str.length())) { \
static_cast<int>(str.length()))) { \
*out = StorageHeaderFlags::e_##M; \
return true; \
}
Expand Down Expand Up @@ -909,7 +909,7 @@ int StorageHeaderFlagUtil::fromString(bsl::ostream& errorDescription,
rc = -1;
}
else {
*out |= value;
*out |= static_cast<unsigned char>(value);
}
}

Expand Down
138 changes: 72 additions & 66 deletions src/groups/bmq/bmqp/bmqp_protocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -3515,7 +3515,7 @@ inline bool MessagePropertiesInfo::isExtended() const
inline MessagePropertiesInfo::SchemaIdType
MessagePropertiesInfo::schemaId() const
{
return d_schemaWireId >> 1;
return static_cast<SchemaIdType>(d_schemaWireId >> 1);
}

inline bool
Expand Down Expand Up @@ -3565,7 +3565,7 @@ inline RdaInfo::RdaInfo(unsigned int internalRepresentation)
{
BSLS_ASSERT_SAFE(internalRepresentation <= k_MAX_INTERNAL_COUNTER_VALUE);

d_counter = internalRepresentation;
d_counter = static_cast<unsigned char>(internalRepresentation);
}

inline RdaInfo::RdaInfo(const RdaInfo& original)
Expand Down Expand Up @@ -3599,7 +3599,8 @@ inline RdaInfo& RdaInfo::setCounter(unsigned int counter)
{
BSLS_ASSERT_SAFE(counter <= k_MAX_COUNTER_VALUE);
// Drop e_UNLIMITED bit flag if set, but save e_POISONOUS bit
d_counter = counter | (d_counter & e_POISONOUS);
d_counter = static_cast<unsigned char>(counter |
(d_counter & e_POISONOUS));
return *this;
}

Expand Down Expand Up @@ -3665,7 +3666,7 @@ inline bsls::Types::Uint64 Protocol::combine(unsigned int upper,

inline unsigned int Protocol::getUpper(bsls::Types::Uint64 value)
{
return (value >> 32) & 0xFFFFFFFF;
return static_cast<unsigned int>((value >> 32) & 0xFFFFFFFF);
}

inline unsigned int Protocol::getLower(bsls::Types::Uint64 value)
Expand Down Expand Up @@ -3745,8 +3746,9 @@ inline EventHeader& EventHeader::setProtocolVersion(unsigned char value)
// PRECONDITIONS: protect against overflow
BSLS_ASSERT_SAFE(value <= (1 << k_PROTOCOL_VERSION_NUM_BITS) - 1);

d_protocolVersionAndType = (d_protocolVersionAndType & k_TYPE_MASK) |
(value << k_PROTOCOL_VERSION_START_IDX);
d_protocolVersionAndType = static_cast<unsigned char>(
(d_protocolVersionAndType & k_TYPE_MASK) |
(value << k_PROTOCOL_VERSION_START_IDX));

return *this;
}
Expand All @@ -3757,10 +3759,9 @@ inline EventHeader& EventHeader::setType(EventType::Enum value)
BSLS_ASSERT_SAFE(value >= 0 &&
static_cast<int>(value) <= (1 << k_TYPE_NUM_BITS) - 1);

d_protocolVersionAndType = (d_protocolVersionAndType &
k_PROTOCOL_VERSION_MASK) |
(static_cast<unsigned char>(value) &
k_TYPE_MASK);
d_protocolVersionAndType = static_cast<unsigned char>(
(d_protocolVersionAndType & k_PROTOCOL_VERSION_MASK) |
(static_cast<unsigned char>(value) & k_TYPE_MASK));

return *this;
}
Expand Down Expand Up @@ -3792,8 +3793,9 @@ inline int EventHeader::length() const

inline unsigned char EventHeader::protocolVersion() const
{
return (d_protocolVersionAndType & k_PROTOCOL_VERSION_MASK) >>
k_PROTOCOL_VERSION_START_IDX;
return static_cast<unsigned char>(
(d_protocolVersionAndType & k_PROTOCOL_VERSION_MASK) >>
k_PROTOCOL_VERSION_START_IDX);
}

inline EventType::Enum EventHeader::type() const
Expand Down Expand Up @@ -3827,10 +3829,11 @@ EventHeaderUtil::setControlEventEncodingType(EventHeader* eventHeader,
unsigned char typeSpecific = eventHeader->typeSpecific();

// Reset the bits for encoding type
typeSpecific &= ~k_CONTROL_EVENT_ENCODING_MASK;
typeSpecific &= static_cast<unsigned char>(~k_CONTROL_EVENT_ENCODING_MASK);

// Set those bits to represent 'type'
typeSpecific |= (type << k_CONTROL_EVENT_ENCODING_START_IDX);
typeSpecific |= static_cast<unsigned char>(
type << k_CONTROL_EVENT_ENCODING_START_IDX);

eventHeader->setTypeSpecific(typeSpecific);
}
Expand Down Expand Up @@ -3935,10 +3938,11 @@ inline MessagePropertiesHeader::MessagePropertiesHeader()
{
bsl::memset(this, 0, sizeof(MessagePropertiesHeader));
size_t headerSize = sizeof(MessagePropertiesHeader);
setHeaderSize(headerSize);
setHeaderSize(static_cast<int>(headerSize));

size_t roundedSize = headerSize + (headerSize % Protocol::k_WORD_SIZE);
setMessagePropertiesAreaWords(roundedSize / Protocol::k_WORD_SIZE);
setMessagePropertiesAreaWords(
static_cast<int>(roundedSize / Protocol::k_WORD_SIZE));

setMessagePropertyHeaderSize(sizeof(MessagePropertyHeader));
static_cast<void>(d_reserved);
Expand All @@ -3952,9 +3956,9 @@ MessagePropertiesHeader::setHeaderSize(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= ((1 << k_HEADER_SIZE_2X_NUM_BITS) - 1));

d_mphSize2xAndHeaderSize2x = (d_mphSize2xAndHeaderSize2x &
k_MPH_SIZE_2X_MASK) |
(value & k_HEADER_SIZE_2X_MASK);
d_mphSize2xAndHeaderSize2x = static_cast<char>(
(d_mphSize2xAndHeaderSize2x & k_MPH_SIZE_2X_MASK) |
(value & k_HEADER_SIZE_2X_MASK));
return *this;
}

Expand All @@ -3965,9 +3969,9 @@ MessagePropertiesHeader::setMessagePropertyHeaderSize(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= ((1 << k_MPH_SIZE_2X_NUM_BITS) - 1));

d_mphSize2xAndHeaderSize2x = (d_mphSize2xAndHeaderSize2x &
k_HEADER_SIZE_2X_MASK) |
(value << k_MPH_SIZE_2X_START_IDX);
d_mphSize2xAndHeaderSize2x = static_cast<unsigned char>(
(d_mphSize2xAndHeaderSize2x & k_HEADER_SIZE_2X_MASK) |
(value << k_MPH_SIZE_2X_START_IDX));
return *this;
}

Expand All @@ -3979,9 +3983,8 @@ MessagePropertiesHeader::setMessagePropertiesAreaWords(int value)
value <= ((1 << k_MSG_PROPS_AREA_WORDS_NUM_BITS) - 1));

d_msgPropsAreaWordsLower = static_cast<unsigned short>(value & 0xFFFF);
d_msgPropsAreaWordsUpper = (value >>
k_MSG_PROPS_AREA_WORDS_LOWER_NUM_BITS) &
0xFF;
d_msgPropsAreaWordsUpper = static_cast<unsigned char>(
(value >> k_MSG_PROPS_AREA_WORDS_LOWER_NUM_BITS) & 0xFF);

return *this;
}
Expand All @@ -3992,7 +3995,7 @@ MessagePropertiesHeader::setNumProperties(int value)
// PRECONDITIONS
BSLS_ASSERT_SAFE(value >= 0 && value <= k_MAX_NUM_PROPERTIES);

d_numProperties = value;
d_numProperties = static_cast<unsigned char>(value);
return *this;
}

Expand Down Expand Up @@ -4039,9 +4042,9 @@ inline MessagePropertyHeader& MessagePropertyHeader::setPropertyType(int value)
// PRECONDITIONS
BSLS_ASSERT_SAFE(value >= 0 && value <= ((1 << k_PROP_TYPE_NUM_BITS) - 1));

d_propTypeAndPropValueLenUpper = (d_propTypeAndPropValueLenUpper &
k_PROP_VALUE_LEN_UPPER_MASK) |
(value << k_PROP_TYPE_START_IDX);
d_propTypeAndPropValueLenUpper = static_cast<unsigned short>(
(d_propTypeAndPropValueLenUpper & k_PROP_VALUE_LEN_UPPER_MASK) |
(static_cast<unsigned short>(value) << k_PROP_TYPE_START_IDX));

return *this;
}
Expand All @@ -4054,10 +4057,11 @@ MessagePropertyHeader::setPropertyValueLength(int value)

d_propValueLenLower = static_cast<unsigned short>(value & 0xFFFF);

d_propTypeAndPropValueLenUpper =
d_propTypeAndPropValueLenUpper = static_cast<unsigned short>(
(d_propTypeAndPropValueLenUpper & k_PROP_TYPE_MASK) |
((value >> k_PROP_VALUE_LEN_LOWER_NUM_BITS) &
k_PROP_VALUE_LEN_UPPER_MASK);
(static_cast<unsigned short>(value >>
k_PROP_VALUE_LEN_LOWER_NUM_BITS) &
k_PROP_VALUE_LEN_UPPER_MASK));

return *this;
}
Expand All @@ -4068,7 +4072,8 @@ MessagePropertyHeader::setPropertyNameLength(int value)
// PRECONDITIONS
BSLS_ASSERT_SAFE(value >= 0 && value <= k_MAX_PROPERTY_NAME_LENGTH);

d_reservedAndPropNameLen = value & k_PROP_NAME_LEN_MASK;
d_reservedAndPropNameLen = static_cast<unsigned short>(
value & k_PROP_NAME_LEN_MASK);

return *this;
}
Expand Down Expand Up @@ -4127,12 +4132,13 @@ inline SchemaWireId::SchemaWireId()
// PUBLIC MODIFIERS
inline void SchemaWireId::set(unsigned value)
{
d_value = value;
// Include precondition check or adjust function signature?
d_value = static_cast<short unsigned int>(value);
}

inline unsigned SchemaWireId::value() const
{
return d_value;
return static_cast<short unsigned int>(d_value);
}

// ---------------
Expand Down Expand Up @@ -4341,9 +4347,9 @@ inline AckHeader& AckHeader::setHeaderWords(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= (1 << k_HEADER_WORDS_NUM_BITS) - 1);

d_headerWordsAndPerMsgWords = (d_headerWordsAndPerMsgWords &
k_PER_MSG_WORDS_MASK) |
(value << k_HEADER_WORDS_START_IDX);
d_headerWordsAndPerMsgWords = static_cast<unsigned char>(
(d_headerWordsAndPerMsgWords & k_PER_MSG_WORDS_MASK) |
(value << k_HEADER_WORDS_START_IDX));
return *this;
}

Expand All @@ -4353,9 +4359,9 @@ inline AckHeader& AckHeader::setPerMessageWords(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= (1 << k_PER_MSG_WORDS_NUM_BITS) - 1);

d_headerWordsAndPerMsgWords = (d_headerWordsAndPerMsgWords &
k_HEADER_WORDS_MASK) |
(value & k_PER_MSG_WORDS_MASK);
d_headerWordsAndPerMsgWords = static_cast<unsigned char>(
(d_headerWordsAndPerMsgWords & k_HEADER_WORDS_MASK) |
(value & k_PER_MSG_WORDS_MASK));
return *this;
}

Expand Down Expand Up @@ -4647,9 +4653,9 @@ inline ConfirmHeader& ConfirmHeader::setHeaderWords(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= (1 << k_HEADER_WORDS_NUM_BITS) - 1);

d_headerWordsAndPerMsgWords = (d_headerWordsAndPerMsgWords &
k_PER_MSG_WORDS_MASK) |
(value << k_HEADER_WORDS_START_IDX);
d_headerWordsAndPerMsgWords = static_cast<unsigned char>(
(d_headerWordsAndPerMsgWords & k_PER_MSG_WORDS_MASK) |
(value << k_HEADER_WORDS_START_IDX));
return *this;
}

Expand All @@ -4659,9 +4665,9 @@ inline ConfirmHeader& ConfirmHeader::setPerMessageWords(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= (1 << k_PER_MSG_WORDS_NUM_BITS) - 1);

d_headerWordsAndPerMsgWords = (d_headerWordsAndPerMsgWords &
k_HEADER_WORDS_MASK) |
(value & k_PER_MSG_WORDS_MASK);
d_headerWordsAndPerMsgWords = static_cast<unsigned char>(
(d_headerWordsAndPerMsgWords & k_HEADER_WORDS_MASK) |
(value & k_PER_MSG_WORDS_MASK));
return *this;
}

Expand Down Expand Up @@ -4742,9 +4748,9 @@ inline RejectHeader& RejectHeader::setHeaderWords(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= (1 << k_HEADER_WORDS_NUM_BITS) - 1);

d_headerWordsAndPerMsgWords = (d_headerWordsAndPerMsgWords &
k_PER_MSG_WORDS_MASK) |
(value << k_HEADER_WORDS_START_IDX);
d_headerWordsAndPerMsgWords = static_cast<unsigned char>(
(d_headerWordsAndPerMsgWords & k_PER_MSG_WORDS_MASK) |
(value << k_HEADER_WORDS_START_IDX));
return *this;
}

Expand All @@ -4754,9 +4760,9 @@ inline RejectHeader& RejectHeader::setPerMessageWords(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= (1 << k_PER_MSG_WORDS_NUM_BITS) - 1);

d_headerWordsAndPerMsgWords = (d_headerWordsAndPerMsgWords &
k_HEADER_WORDS_MASK) |
(value & k_PER_MSG_WORDS_MASK);
d_headerWordsAndPerMsgWords = static_cast<unsigned char>(
(d_headerWordsAndPerMsgWords & k_HEADER_WORDS_MASK) |
(value & k_PER_MSG_WORDS_MASK));
return *this;
}

Expand Down Expand Up @@ -4907,9 +4913,9 @@ inline StorageHeader& StorageHeader::setStorageProtocolVersion(int value)
// PRECONDITIONS: protect against overflow
BSLS_ASSERT_SAFE(value >= 0 && value <= (1 << k_SPV_NUM_BITS) - 1);

d_reservedAndSpvAndHeaderWords = (d_reservedAndSpvAndHeaderWords &
k_HEADER_WORDS_MASK) |
(value << k_SPV_START_IDX);
d_reservedAndSpvAndHeaderWords = static_cast<unsigned char>(
(d_reservedAndSpvAndHeaderWords & k_HEADER_WORDS_MASK) |
(value << k_SPV_START_IDX));
return *this;
}

Expand All @@ -4918,9 +4924,9 @@ inline StorageHeader& StorageHeader::setHeaderWords(unsigned int value)
// PRECONDITIONS: protect against overflow
BSLS_ASSERT_SAFE(value <= (1 << k_HEADER_WORDS_NUM_BITS) - 1);

d_reservedAndSpvAndHeaderWords = (d_reservedAndSpvAndHeaderWords &
k_SPV_MASK) |
(value & k_HEADER_WORDS_MASK);
d_reservedAndSpvAndHeaderWords = static_cast<unsigned char>(
(d_reservedAndSpvAndHeaderWords & k_SPV_MASK) |
(value & k_HEADER_WORDS_MASK));
return *this;
}

Expand Down Expand Up @@ -5041,25 +5047,25 @@ inline RecoveryHeader& RecoveryHeader::setHeaderWords(int value)
BSLS_ASSERT_SAFE(value >= 0 &&
value <= (1 << k_HEADER_WORDS_NUM_BITS) - 1);

d_headerWordsAndFileChunkType = (d_headerWordsAndFileChunkType &
k_FILE_CHUNK_TYPE_MASK) |
(value << k_HEADER_WORDS_START_IDX);
d_headerWordsAndFileChunkType = static_cast<unsigned char>(
(d_headerWordsAndFileChunkType & k_FILE_CHUNK_TYPE_MASK) |
(value << k_HEADER_WORDS_START_IDX));

return *this;
}

inline RecoveryHeader&
RecoveryHeader::setFileChunkType(RecoveryFileChunkType::Enum value)
{
d_headerWordsAndFileChunkType = (d_headerWordsAndFileChunkType &
k_HEADER_WORDS_MASK) |
(value & k_FILE_CHUNK_TYPE_MASK);
d_headerWordsAndFileChunkType = static_cast<unsigned char>(
(d_headerWordsAndFileChunkType & k_HEADER_WORDS_MASK) |
(value & k_FILE_CHUNK_TYPE_MASK));
return *this;
}

inline RecoveryHeader& RecoveryHeader::setPartitionId(unsigned int value)
{
d_partitionId = value;
d_partitionId = static_cast<short unsigned int>(value);
return *this;
}

Expand Down
Loading
Loading