From 6a7a29ac55ab29cc00ed84b37bfbc7f5b30b09d9 Mon Sep 17 00:00:00 2001 From: ShiningZhang Date: Fri, 27 Aug 2021 17:03:19 +0800 Subject: [PATCH] fix general-client: change swap to memcpy --- core/general-client/src/brpc_client.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/general-client/src/brpc_client.cpp b/core/general-client/src/brpc_client.cpp index 98be0be1..142b5529 100644 --- a/core/general-client/src/brpc_client.cpp +++ b/core/general-client/src/brpc_client.cpp @@ -128,8 +128,8 @@ static int pre_process(const PredictorInputs& inputs, tensor->set_name(feed_name[idx]); tensor->set_alias_name(name); - google::protobuf::RepeatedField data(float_data.begin(), float_data.end()); - tensor->mutable_float_data()->Swap(&data); + tensor->mutable_float_data()->Resize(total_number, 0); + memcpy(tensor->mutable_float_data()->mutable_data(), float_data.data(), total_number * sizeof(float)); } for (std::map>::const_iterator iter = int64_feed_map.begin(); @@ -158,8 +158,8 @@ static int pre_process(const PredictorInputs& inputs, tensor->set_name(feed_name[idx]); tensor->set_alias_name(name); - google::protobuf::RepeatedField data(int64_data.begin(), int64_data.end()); - tensor->mutable_int64_data()->Swap(&data); + tensor->mutable_int64_data()->Resize(total_number, 0); + memcpy(tensor->mutable_int64_data()->mutable_data(), int64_data.data(), total_number * sizeof(int64_t)); } for (std::map>::const_iterator iter = int32_feed_map.begin(); @@ -176,6 +176,7 @@ static int pre_process(const PredictorInputs& inputs, } int idx = feed_name_to_idx.at(name); Tensor *tensor = req.add_tensor(); + int total_number = int32_data.size(); for (uint32_t j = 0; j < int32_shape.size(); ++j) { tensor->add_shape(int32_shape[j]); @@ -187,8 +188,8 @@ static int pre_process(const PredictorInputs& inputs, tensor->set_name(feed_name[idx]); tensor->set_alias_name(name); - google::protobuf::RepeatedField data(int32_data.begin(), int32_data.end()); - tensor->mutable_int_data()->Swap(&data); + tensor->mutable_int_data()->Resize(total_number, 0); + memcpy(tensor->mutable_int_data()->mutable_data(), int32_data.data(), total_number * sizeof(int32_t)); } for (std::map::const_iterator iter = string_feed_map.begin(); -- GitLab