From d03594fb737822f4a9480cabd0cbfaea239c4547 Mon Sep 17 00:00:00 2001
From: yang-g <yangg@google.com>
Date: Mon, 10 Jul 2017 14:23:00 -0700
Subject: [PATCH] second try

---
 include/grpc++/impl/codegen/call.h | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h
index a40939f4d6..f6eefb9f7f 100644
--- a/include/grpc++/impl/codegen/call.h
+++ b/include/grpc++/impl/codegen/call.h
@@ -547,7 +547,10 @@ class CallOpClientRecvStatus {
 /// TODO(vjpai): Remove the existence of CallOpSetCollectionInterface
 /// and references to it. This code is deprecated-on-arrival and is
 /// only added for users that bypassed the code-generator.
-class CallOpSetCollectionInterface {};
+class CallOpSetCollectionInterface {
+ public:
+  virtual ~CallOpSetCollectionInterface() {}
+};
 
 /// An abstract collection of call ops, used to generate the
 /// grpc_call_op structure to pass down to the lower layers,
@@ -611,12 +614,13 @@ class CallOpSet : public CallOpSetInterface,
     this->Op6::FinishOp(status);
     *tag = return_tag_;
 
-    g_core_codegen_interface->grpc_call_unref(call_);
-
     // TODO(vjpai): Remove the reference to collection_ once the idea of
     // bypassing the code generator is forbidden. It is already deprecated
+    grpc_call* call = call_;
     collection_.reset();
 
+    g_core_codegen_interface->grpc_call_unref(call);
+
     return true;
   }
 
-- 
GitLab