From a58cab30b2e47f1efdad8cd78b820e818ba30fbb Mon Sep 17 00:00:00 2001
From: yang-g <yangg@google.com>
Date: Tue, 23 Jun 2015 14:37:15 -0700
Subject: [PATCH] release memory even if the status is false

---
 src/cpp/server/server.cc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index 4c44d9ec50..f930dbb2b8 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -369,11 +369,12 @@ Server::GenericAsyncRequest::GenericAsyncRequest(
 bool Server::GenericAsyncRequest::FinalizeResult(void** tag, bool* status) {
   // TODO(yangg) remove the copy here.
   if (*status) {
-    static_cast<GenericServerContext*>(context_)->method_ = call_details_.method;
+    static_cast<GenericServerContext*>(context_)->method_ =
+        call_details_.method;
     static_cast<GenericServerContext*>(context_)->host_ = call_details_.host;
-    gpr_free(call_details_.method);
-    gpr_free(call_details_.host);
   }
+  gpr_free(call_details_.method);
+  gpr_free(call_details_.host);
   return BaseAsyncRequest::FinalizeResult(tag, status);
 }
 
-- 
GitLab