diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc index 560869e6fa420389f1453e22b1c509350a8f6190..49b306202bda5469c8947ed1bad48ebab4bd22da 100644 --- a/src/node/ext/call.cc +++ b/src/node/ext/call.cc @@ -172,6 +172,9 @@ Handle<Value> Op::GetOpType() const { return NanEscapeScope(NanNew<String>(GetTypeString())); } +Op::~Op() { +} + class SendMetadataOp : public Op { public: Handle<Value> GetNodeValue() const { @@ -325,7 +328,7 @@ class ReadMessageOp : public Op { } ~ReadMessageOp() { if (recv_message != NULL) { - gpr_free(recv_message); + grpc_byte_buffer_destroy(recv_message); } } Handle<Value> GetNodeValue() const { diff --git a/src/node/ext/call.h b/src/node/ext/call.h index 89f81dcf4dc3660aadcd4e6bff5836fd6ca49005..a01f03489e707ef1e0b24926b84dbc968f01bb24 100644 --- a/src/node/ext/call.h +++ b/src/node/ext/call.h @@ -88,6 +88,7 @@ struct Resources { class Op { public: + virtual ~Op(); virtual v8::Handle<v8::Value> GetNodeValue() const = 0; virtual bool ParseOp(v8::Handle<v8::Value> value, grpc_op *out, shared_ptr<Resources> resources) = 0; @@ -98,7 +99,6 @@ class Op { }; typedef std::vector<unique_ptr<Op>> OpVec; - struct tag { tag(NanCallback *callback, OpVec *ops, shared_ptr<Resources> resources);