Skip to content
Permalink
Browse files
Merge pull request #1723 from yangzhg/fix_deprecate
Fix build warning, ByteSize() is deprecated, use ByteSizeLong() instead
  • Loading branch information
wwbmmm committed Mar 30, 2022
2 parents 0db9263 + d8eef06 commit 4839ec2add93b439ccfe2761ce76a8914952992a
Showing 6 changed files with 20 additions and 8 deletions.
@@ -62,7 +62,7 @@ DEFINE_bool(baidu_std_protocol_deliver_timeout_ms, false,
// 5. Not supported: chunk_info

// Pack header into `buf'
inline void PackRpcHeader(char* rpc_header, int meta_size, int payload_size) {
inline void PackRpcHeader(char* rpc_header, uint32_t meta_size, int payload_size) {
uint32_t* dummy = (uint32_t*)rpc_header; // suppress strict-alias warning
*dummy = *(uint32_t*)"PRPC";
butil::RawPacker(rpc_header + 4)
@@ -72,7 +72,7 @@ inline void PackRpcHeader(char* rpc_header, int meta_size, int payload_size) {

static void SerializeRpcHeaderAndMeta(
butil::IOBuf* out, const RpcMeta& meta, int payload_size) {
const int meta_size = meta.ByteSize();
const uint32_t meta_size = GetProtobufByteSize(meta);
if (meta_size <= 244) { // most common cases
char header_and_meta[12 + meta_size];
PackRpcHeader(header_and_meta, meta_size, payload_size);
@@ -142,7 +142,7 @@ class HuluRawUnpacker {
const char* _stream;
};

inline void PackHuluHeader(char* hulu_header, int meta_size, int body_size) {
inline void PackHuluHeader(char* hulu_header, uint32_t meta_size, int body_size) {
uint32_t* dummy = reinterpret_cast<uint32_t*>(hulu_header); // suppress strict-alias warning
*dummy = *reinterpret_cast<const uint32_t*>("HULU");
HuluRawPacker rp(hulu_header + 4);
@@ -152,7 +152,7 @@ inline void PackHuluHeader(char* hulu_header, int meta_size, int body_size) {
template <typename Meta>
static void SerializeHuluHeaderAndMeta(
butil::IOBuf* out, const Meta& meta, int payload_size) {
const int meta_size = meta.ByteSize();
const uint32_t meta_size = GetProtobufByteSize(meta);
if (meta_size <= 244) { // most common cases
char header_and_meta[12 + meta_size];
PackHuluHeader(header_and_meta, meta_size, payload_size);
@@ -266,7 +266,7 @@ void PackPublicPbrpcRequest(butil::IOBuf* buf,
nshead.magic_num = NSHEAD_MAGICNUM;
snprintf(nshead.provider, sizeof(nshead.provider), "%s", PROVIDER);
nshead.version = NSHEAD_VERSION;
nshead.body_len = pbreq.ByteSize();
nshead.body_len = GetProtobufByteSize(pbreq);
buf->append(&nshead, sizeof(nshead));

Span* span = ControllerPrivateAccessor(controller).span();
@@ -129,7 +129,7 @@ class SofaRawUnpacker {
const char* _stream;
};

inline void PackSofaHeader(char* sofa_header, int meta_size, int body_size) {
inline void PackSofaHeader(char* sofa_header, uint32_t meta_size, int body_size) {
uint32_t* dummy = reinterpret_cast<uint32_t*>(sofa_header); // suppress strict-alias warning
*dummy = *reinterpret_cast<const uint32_t*>("SOFA");

@@ -139,7 +139,7 @@ inline void PackSofaHeader(char* sofa_header, int meta_size, int body_size) {

static void SerializeSofaHeaderAndMeta(
butil::IOBuf* out, const SofaRpcMeta& meta, int payload_size) {
const int meta_size = meta.ByteSize();
const uint32_t meta_size = GetProtobufByteSize(meta);
if (meta_size <= 232) { // most common cases
char header_and_meta[24 + meta_size];
PackSofaHeader(header_and_meta, meta_size, payload_size);
@@ -43,7 +43,7 @@ void PackStreamMessage(butil::IOBuf* out,
const StreamFrameMeta &fm,
const butil::IOBuf *data) {
const uint32_t data_length = data ? data->length() : 0;
const uint32_t meta_length = fm.ByteSize();
const uint32_t meta_length = GetProtobufByteSize(fm);
char head[12];
uint32_t* dummy = (uint32_t*)head; // suppresses strict-alias warning
*(uint32_t*)dummy = *(const uint32_t*)"STRM";
@@ -56,6 +56,18 @@ class InputMessageBase;
DECLARE_uint64(max_body_size);
DECLARE_bool(log_error_text);

// Get the serialized byte size of the protobuf message,
// different versions of protobuf have different methods
// use template to avoid include `google/protobuf/message.h`
template<typename T>
inline uint32_t GetProtobufByteSize(const T& message) {
#if GOOGLE_PROTOBUF_VERSION >= 3010000
return message.ByteSizeLong();
#else
return static_cast<uint32_t>(message.ByteSize());
#endif
}

// 3 steps to add a new Protocol:
// Step1: Add a new ProtocolType in src/brpc/options.proto
// as identifier of the Protocol.

0 comments on commit 4839ec2

Please sign in to comment.