This is an automated email from the ASF dual-hosted git repository.

wwbmmm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brpc.git


The following commit(s) were added to refs/heads/master by this push:
     new 7dbe7752 Opt HttpResponseSender move constructor (#2504)
7dbe7752 is described below

commit 7dbe7752a3a8e189f64b977e30bdef0ea81a0dc8
Author: Bright Chen <chenguangmin...@foxmail.com>
AuthorDate: Tue Jan 23 13:21:15 2024 +0800

    Opt HttpResponseSender move constructor (#2504)
---
 src/brpc/policy/http_rpc_protocol.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/brpc/policy/http_rpc_protocol.cpp 
b/src/brpc/policy/http_rpc_protocol.cpp
index 1f9fb5a8..2587cf3f 100644
--- a/src/brpc/policy/http_rpc_protocol.cpp
+++ b/src/brpc/policy/http_rpc_protocol.cpp
@@ -708,16 +708,19 @@ class HttpResponseSender {
 friend class HttpResponseSenderAsDone;
 public:
     HttpResponseSender()
-        : _method_status(NULL), _received_us(0), _h2_stream_id(-1) {}
-    HttpResponseSender(Controller* cntl/*own*/)
+        : HttpResponseSender(NULL) {}
+    explicit HttpResponseSender(Controller* cntl/*own*/)
         : _cntl(cntl), _method_status(NULL), _received_us(0), 
_h2_stream_id(-1) {}
-    HttpResponseSender(HttpResponseSender&& s)
+    HttpResponseSender(HttpResponseSender&& s) noexcept
         : _cntl(std::move(s._cntl))
         , _req(std::move(s._req))
         , _res(std::move(s._res))
-        , _method_status(std::move(s._method_status))
+        , _method_status(s._method_status)
         , _received_us(s._received_us)
         , _h2_stream_id(s._h2_stream_id) {
+        s._method_status = NULL;
+        s._received_us = 0;
+        s._h2_stream_id = -1;
     }
     ~HttpResponseSender();
 
@@ -738,7 +741,7 @@ private:
 
 class HttpResponseSenderAsDone : public google::protobuf::Closure {
 public:
-    HttpResponseSenderAsDone(HttpResponseSender* s) : _sender(std::move(*s)) {}
+    explicit HttpResponseSenderAsDone(HttpResponseSender* s) : 
_sender(std::move(*s)) {}
     void Run() override {
         _sender._cntl->CallAfterRpcResp(_sender._req.get(), 
_sender._res.get());
         delete this;


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org
For additional commands, e-mail: dev-h...@brpc.apache.org

Reply via email to