diff --git a/src/callback_info.cc b/src/callback_info.cc index ea176b29..8d0b0107 100644 --- a/src/callback_info.cc +++ b/src/callback_info.cc @@ -150,7 +150,7 @@ NAN_METHOD(CallbackInfo::Callback) { } info.GetReturnValue().Set( - Nan::NewBuffer((char *)code, sizeof(void *), closure_pointer_cb, cbInfo).ToLocalChecked() + Nan::NewBuffer((char *)code, sizeof(void*), closure_pointer_cb, cbInfo).ToLocalChecked() ); } diff --git a/src/ffi.cc b/src/ffi.cc index 738496a2..39166d9b 100644 --- a/src/ffi.cc +++ b/src/ffi.cc @@ -294,12 +294,12 @@ NAN_METHOD(FFI::FFICallAsync) { p->result = FFI_OK; // store a persistent references to all the Buffers and the callback function - p->cif = Buffer::Data(info[0]->ToObject()); - p->fn = Buffer::Data(info[1]->ToObject()); - p->res = Buffer::Data(info[2]->ToObject()); - p->argv = Buffer::Data(info[3]->ToObject()); + p->cif = Buffer::Data(info[0]->ToObject()); + p->fn = Buffer::Data(info[1]->ToObject()); + p->res = Buffer::Data(info[2]->ToObject()); + p->argv = Buffer::Data(info[3]->ToObject()); - Local callback = Local::Cast(info[4]); + Local callback = Local::Cast(info[4]); p->callback = new Nan::Callback(callback); uv_work_t *req = new uv_work_t; @@ -365,7 +365,11 @@ void FFI::FinishAsyncFFICall(uv_work_t *req) { delete req; if (try_catch.HasCaught()) { +#if NODE_VERSION_AT_LEAST(0, 12, 0) Nan::FatalException(try_catch); +#else + FatalException(try_catch); +#endif } } diff --git a/test/ffi_tests.cc b/test/ffi_tests.cc index 1158b9fd..0e64a8ab 100644 --- a/test/ffi_tests.cc +++ b/test/ffi_tests.cc @@ -247,11 +247,15 @@ void play_ping_pong (const char* (*callback) (const char*)) { } void wrap_pointer_cb(char *data, void *hint) { - //fprintf(stderr, "wrap_pointer_cb\n"); } -Local WrapPointer(char *ptr) { - return Nan::NewBuffer(ptr, 0, wrap_pointer_cb, NULL).ToLocalChecked(); +inline Local WrapPointer(char *ptr, size_t length) { + Nan::EscapableHandleScope scope; + return scope.Escape(Nan::NewBuffer(ptr, length, wrap_pointer_cb, NULL).ToLocalChecked()); +} + +inline Local WrapPointer(char *ptr) { + return WrapPointer(ptr, 0); } void Initialize(Handle target) {