From be63274263dbcf31bbe0f57eb22af74d449235a6 Mon Sep 17 00:00:00 2001 From: Jia-Han Su Date: Fri, 11 Sep 2015 17:26:19 +0800 Subject: [PATCH] unwrapBufferToPointer supports noe::Buffer object --- package.json | 2 +- src/dyncall_v8_utils.cc | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d986eed..1c99f54 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bridjs", - "version": "0.3.4-1", + "version": "0.3.4-2", "description": "V8 bindings for dyncall, and BridJ-like API for nodejs.", "keywords": [ "dyncall", diff --git a/src/dyncall_v8_utils.cc b/src/dyncall_v8_utils.cc index 2be0609..6b141e0 100755 --- a/src/dyncall_v8_utils.cc +++ b/src/dyncall_v8_utils.cc @@ -239,9 +239,17 @@ Local bridjs::Utils::wrapPointerToBuffer(Isolate* isolate, const void* pt void* bridjs::Utils::unwrapBufferToPointer(v8::Local value){ void* ptr; - v8::Local ab = value.As(); + void* bufferPtr; + + if(node::Buffer::HasInstance(value)){ + bufferPtr = node::Buffer::Data(value); + }else{ + v8::Local ab = value.As(); + + bufferPtr = ab->GetContents().Data(); + } - std::memcpy(&ptr, ab->GetContents().Data(), sizeof(void*)); + std::memcpy(&ptr, bufferPtr, sizeof(void*)); return ptr; }