aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Yang Gao <yangg@google.com>2015-02-17 12:08:43 -0800
committerGravatar Yang Gao <yangg@google.com>2015-02-17 12:08:43 -0800
commit467d7bd414238427c051a44316d64d267c068ea3 (patch)
treebce8894aed72de1f6a6c0e2960a7065f1c4c1459
parent0b7c4d29d43390247a45295453184cd140a6fc6a (diff)
When the entire op fails, the recv_message is always discarded.
-rw-r--r--src/cpp/common/call.cc2
-rw-r--r--src/cpp/server/server.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc
index 0922a6e460..70daa6a3b0 100644
--- a/src/cpp/common/call.cc
+++ b/src/cpp/common/call.cc
@@ -256,7 +256,7 @@ void CallOpBuffer::FinalizeResult(void** tag, bool* status) {
if (recv_message_) {
if (recv_message_buf_) {
got_message = true;
- *status &= DeserializeProto(recv_message_buf_, recv_message_);
+ *status = *status && DeserializeProto(recv_message_buf_, recv_message_);
grpc_byte_buffer_destroy(recv_message_buf_);
recv_message_buf_ = nullptr;
} else {
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index 35ced54aa7..ee9a1daa8e 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -314,7 +314,7 @@ class Server::AsyncRequest final : public CompletionQueueTag {
*tag = tag_;
if (*status && request_) {
if (payload_) {
- *status &= DeserializeProto(payload_, request_);
+ *status = *status && DeserializeProto(payload_, request_);
} else {
*status = false;
}