mirror of https://github.com/grpc/grpc-node.git
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
This commit is contained in:
parent
c1d0627312
commit
ca2ec213e3
|
@ -63,6 +63,10 @@ grpc_byte_buffer *BufferToByteBuffer(Local<Value> buffer) {
|
||||||
return byte_buffer;
|
return byte_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void delete_buffer(char *data, void *hint) { delete[] data; }
|
||||||
|
}
|
||||||
|
|
||||||
Local<Value> ByteBufferToBuffer(grpc_byte_buffer *buffer) {
|
Local<Value> ByteBufferToBuffer(grpc_byte_buffer *buffer) {
|
||||||
Nan::EscapableHandleScope scope;
|
Nan::EscapableHandleScope scope;
|
||||||
if (buffer == NULL) {
|
if (buffer == NULL) {
|
||||||
|
@ -80,7 +84,7 @@ Local<Value> ByteBufferToBuffer(grpc_byte_buffer *buffer) {
|
||||||
gpr_slice_unref(next);
|
gpr_slice_unref(next);
|
||||||
}
|
}
|
||||||
return scope.Escape(MakeFastBuffer(
|
return scope.Escape(MakeFastBuffer(
|
||||||
Nan::NewBuffer(result, length).ToLocalChecked()));
|
Nan::NewBuffer(result, length, delete_buffer, NULL).ToLocalChecked()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Local<Value> MakeFastBuffer(Local<Value> slowBuffer) {
|
Local<Value> MakeFastBuffer(Local<Value> slowBuffer) {
|
||||||
|
|
Loading…
Reference in New Issue