|
|
|
@ -772,9 +772,8 @@ class CallOpClientRecvStatus { |
|
|
|
|
|
|
|
|
|
void FinishOp(bool* /*status*/) { |
|
|
|
|
if (recv_status_ == nullptr || hijacked_) return; |
|
|
|
|
if (status_code_ == StatusCode::OK) { |
|
|
|
|
if (static_cast<StatusCode>(status_code_) == StatusCode::OK) { |
|
|
|
|
*recv_status_ = Status(); |
|
|
|
|
GPR_CODEGEN_DEBUG_ASSERT(GRPC_SLICE_IS_EMPTY(error_message_)); |
|
|
|
|
GPR_CODEGEN_DEBUG_ASSERT(debug_error_string_ == nullptr); |
|
|
|
|
} else { |
|
|
|
|
*recv_status_ = |
|
|
|
@ -784,12 +783,14 @@ class CallOpClientRecvStatus { |
|
|
|
|
: grpc::string(GRPC_SLICE_START_PTR(error_message_), |
|
|
|
|
GRPC_SLICE_END_PTR(error_message_)), |
|
|
|
|
metadata_map_->GetBinaryErrorDetails()); |
|
|
|
|
g_core_codegen_interface->grpc_slice_unref(error_message_); |
|
|
|
|
if (debug_error_string_ != nullptr) { |
|
|
|
|
client_context_->set_debug_error_string(debug_error_string_); |
|
|
|
|
g_core_codegen_interface->gpr_free((void*)debug_error_string_); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// TODO(soheil): Find callers that set debug string even for status OK,
|
|
|
|
|
// and fix them.
|
|
|
|
|
g_core_codegen_interface->grpc_slice_unref(error_message_); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SetInterceptionHookPoint( |
|
|
|
|