From 777777efa4e23668dd5b23ed85e94d66c3f17af2 Mon Sep 17 00:00:00 2001 From: Patryk Lesiewicz <patryk@google.com> Date: Wed, 10 Feb 2016 11:27:44 -0800 Subject: [PATCH] Pass delete[] explicitely to Nan::NewBuffer. Use the Nan::NewBuffer version that accepts an explicit callback deallocating buffers. This way we'll be resilient to different nan/node versions. Fixes grpc/grpc#4867 --- src/node/ext/byte_buffer.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/node/ext/byte_buffer.cc b/src/node/ext/byte_buffer.cc index ee703fdc91..0f7edada14 100644 --- a/src/node/ext/byte_buffer.cc +++ b/src/node/ext/byte_buffer.cc @@ -63,6 +63,10 @@ grpc_byte_buffer *BufferToByteBuffer(Local<Value> buffer) { return byte_buffer; } +namespace { +void delete_buffer(char *data, void *hint) { delete[] data; } +} + Local<Value> ByteBufferToBuffer(grpc_byte_buffer *buffer) { Nan::EscapableHandleScope scope; if (buffer == NULL) { @@ -80,7 +84,7 @@ Local<Value> ByteBufferToBuffer(grpc_byte_buffer *buffer) { gpr_slice_unref(next); } return scope.Escape(MakeFastBuffer( - Nan::NewBuffer(result, length).ToLocalChecked())); + Nan::NewBuffer(result, length, delete_buffer, NULL).ToLocalChecked())); } Local<Value> MakeFastBuffer(Local<Value> slowBuffer) { -- GitLab