From: Roger Meier Date: Tue, 4 Jun 2013 18:59:01 +0000 (+0200) Subject: THRIFT-1987 TCompactProtocol.tcc/h warnings on Visual X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=64a799d28e60073e29ecebeed06d86e91e65b6cf;p=common%2Fthrift.git THRIFT-1987 TCompactProtocol.tcc/h warnings on Visual Patch: Konrad Grochowski --- diff --git a/lib/cpp/src/thrift/protocol/TCompactProtocol.h b/lib/cpp/src/thrift/protocol/TCompactProtocol.h index c4d1f08a..7311f852 100644 --- a/lib/cpp/src/thrift/protocol/TCompactProtocol.h +++ b/lib/cpp/src/thrift/protocol/TCompactProtocol.h @@ -161,12 +161,12 @@ class TCompactProtocolT const TType fieldType, const int16_t fieldId, int8_t typeOverride); - uint32_t writeCollectionBegin(int8_t elemType, int32_t size); + uint32_t writeCollectionBegin(const TType elemType, int32_t size); uint32_t writeVarint32(uint32_t n); uint32_t writeVarint64(uint64_t n); uint64_t i64ToZigzag(const int64_t l); uint32_t i32ToZigzag(const int32_t n); - inline int8_t getCompactType(int8_t ttype); + inline int8_t getCompactType(const TType ttype); public: uint32_t readMessageBegin(std::string& name, diff --git a/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc b/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc index 1d93cbac..62d6485d 100644 --- a/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc +++ b/lib/cpp/src/thrift/protocol/TCompactProtocol.tcc @@ -198,16 +198,20 @@ uint32_t TCompactProtocolT::writeBool(const bool value) { if (booleanField_.name != NULL) { // we haven't written the field header yet - wsize += writeFieldBeginInternal(booleanField_.name, - booleanField_.fieldType, - booleanField_.fieldId, - value ? detail::compact::CT_BOOLEAN_TRUE : - detail::compact::CT_BOOLEAN_FALSE); + wsize + += writeFieldBeginInternal(booleanField_.name, + booleanField_.fieldType, + booleanField_.fieldId, + static_cast(value + ? detail::compact::CT_BOOLEAN_TRUE + : detail::compact::CT_BOOLEAN_FALSE)); booleanField_.name = NULL; } else { // we're not part of a field, so just write the value - wsize += writeByte(value ? detail::compact::CT_BOOLEAN_TRUE : - detail::compact::CT_BOOLEAN_FALSE); + wsize + += writeByte(static_cast(value + ? detail::compact::CT_BOOLEAN_TRUE + : detail::compact::CT_BOOLEAN_FALSE)); } return wsize; } @@ -296,7 +300,8 @@ int32_t TCompactProtocolT::writeFieldBeginInternal( // check if we can use delta encoding for the field id if (fieldId > lastFieldId_ && fieldId - lastFieldId_ <= 15) { // write them together - wsize += writeByte((fieldId - lastFieldId_) << 4 | typeToWrite); + wsize += writeByte(static_cast((fieldId - lastFieldId_) + << 4 | typeToWrite)); } else { // write them separate wsize += writeByte(typeToWrite); @@ -312,11 +317,12 @@ int32_t TCompactProtocolT::writeFieldBeginInternal( * the wire differ only by the type indicator. */ template -uint32_t TCompactProtocolT::writeCollectionBegin(int8_t elemType, +uint32_t TCompactProtocolT::writeCollectionBegin(const TType elemType, int32_t size) { uint32_t wsize = 0; if (size <= 14) { - wsize += writeByte(size << 4 | getCompactType(elemType)); + wsize += writeByte(static_cast(size + << 4 | getCompactType(elemType))); } else { wsize += writeByte(0xf0 | getCompactType(elemType)); wsize += writeVarint32(size); @@ -388,7 +394,7 @@ uint32_t TCompactProtocolT::i32ToZigzag(const int32_t n) { * Given a TType value, find the appropriate detail::compact::Types value */ template -int8_t TCompactProtocolT::getCompactType(int8_t ttype) { +int8_t TCompactProtocolT::getCompactType(const TType ttype) { return detail::compact::TTypeToCType[ttype]; } @@ -762,7 +768,7 @@ uint32_t TCompactProtocolT::readVarint64(int64_t& i64) { */ template int32_t TCompactProtocolT::zigzagToI32(uint32_t n) { - return (n >> 1) ^ -(n & 1); + return (n >> 1) ^ -static_cast(n & 1); } /** @@ -770,7 +776,7 @@ int32_t TCompactProtocolT::zigzagToI32(uint32_t n) { */ template int64_t TCompactProtocolT::zigzagToI64(uint64_t n) { - return (n >> 1) ^ -(n & 1); + return (n >> 1) ^ -static_cast(n & 1); } template