From ca2ec213e3a5728dcdc551aad80cb27e2df76c53 Mon Sep 17 00:00:00 2001 From: Patryk Lesiewicz 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 --- ext/byte_buffer.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/byte_buffer.cc b/ext/byte_buffer.cc index ee703fdc..0f7edada 100644 --- a/ext/byte_buffer.cc +++ b/ext/byte_buffer.cc @@ -63,6 +63,10 @@ grpc_byte_buffer *BufferToByteBuffer(Local buffer) { return byte_buffer; } +namespace { +void delete_buffer(char *data, void *hint) { delete[] data; } +} + Local ByteBufferToBuffer(grpc_byte_buffer *buffer) { Nan::EscapableHandleScope scope; if (buffer == NULL) { @@ -80,7 +84,7 @@ Local 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 MakeFastBuffer(Local slowBuffer) {