diff --git a/package.json b/package.json index 022d7ba..60c9bd8 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "url": "git://github.com/Topface/node-lzf.git" }, "dependencies": { - "nan": "1.3.0" + "nan": "^2.0.9" }, "directories": { "lib": "./lib" @@ -20,5 +20,6 @@ "main": "./index", "scripts": { "test": "node test/test.js" - } + }, + "license": "BSD-2-Clause" } diff --git a/src/lzf.cc b/src/lzf.cc index 68cc039..f4dad38 100644 --- a/src/lzf.cc +++ b/src/lzf.cc @@ -17,75 +17,70 @@ using namespace node; // Handle ThrowNodeError(const char* what = NULL) { -// return NanThrowError(Exception::Error(NanNew(what))); +// return Nan::ThrowError(Exception::Error(Nan::New(what))); // } NAN_METHOD(compress) { - if (args.Length() < 1 || !Buffer::HasInstance(args[0])) { - return NanThrowError("First argument must be a Buffer"); + if (info.Length() < 1 || !Buffer::HasInstance(info[0])) { + return Nan::ThrowError("First argument must be a Buffer"); } - NanScope(); - Local bufferIn = args[0]->ToObject(); + Local bufferIn = info[0]->ToObject(); size_t bytesIn = Buffer::Length(bufferIn); char * dataPointer = Buffer::Data(bufferIn); size_t bytesCompressed = bytesIn + 100; char * bufferOut = (char*) malloc(bytesCompressed); if (!bufferOut) { - return NanThrowError("LZF malloc failed!"); + return Nan::ThrowError("LZF malloc failed!"); } unsigned result = lzf_compress(dataPointer, bytesIn, bufferOut, bytesCompressed); if (!result) { free(bufferOut); - return NanThrowError("Compression failed, probably too small buffer"); + return Nan::ThrowError("Compression failed, probably too small buffer"); } - Local BufferOut = NanNewBufferHandle(bufferOut, result); - free(bufferOut); + Nan::MaybeLocal BufferOut = Nan::NewBuffer(bufferOut, result); - NanReturnValue(BufferOut); + info.GetReturnValue().Set(BufferOut.ToLocalChecked()); } NAN_METHOD(decompress) { - if (args.Length() < 1 || !Buffer::HasInstance(args[0])) { - return NanThrowError("First argument must be a Buffer"); + if (info.Length() < 1 || !Buffer::HasInstance(info[0])) { + return Nan::ThrowError("First argument must be a Buffer"); } - Local bufferIn = args[0]->ToObject(); + Local bufferIn = info[0]->ToObject(); size_t bytesUncompressed = 999 * 1024 * 1024; // it's about max size that V8 supports - if (args.Length() > 1 && args[1]->IsNumber()) { // accept dest buffer size - bytesUncompressed = args[1]->Uint32Value(); + if (info.Length() > 1 && info[1]->IsNumber()) { // accept dest buffer size + bytesUncompressed = info[1]->Uint32Value(); } char * bufferOut = (char*) malloc(bytesUncompressed); if (!bufferOut) { - return NanThrowError("LZF malloc failed!"); + return Nan::ThrowError("LZF malloc failed!"); } unsigned result = lzf_decompress(Buffer::Data(bufferIn), Buffer::Length(bufferIn), bufferOut, bytesUncompressed); if (!result) { - return NanThrowError("Unrompression failed, probably too small buffer"); + return Nan::ThrowError("Unrompression failed, probably too small buffer"); } - Local BufferOut = NanNewBufferHandle(bufferOut, result); + Nan::MaybeLocal BufferOut = Nan::NewBuffer(bufferOut, result); - free(bufferOut); - - NanScope(); - NanReturnValue(BufferOut); + info.GetReturnValue().Set(BufferOut.ToLocalChecked()); } extern "C" void init (Handle target) { - NODE_SET_METHOD(target, "compress", compress); - NODE_SET_METHOD(target, "decompress", decompress); + Nan::SetMethod(target, "compress", compress); + Nan::SetMethod(target, "decompress", decompress); } NODE_MODULE(lzf, init) diff --git a/src/lzf/lzfP.h b/src/lzf/lzfP.h index 7b7feda..cd35da6 100644 --- a/src/lzf/lzfP.h +++ b/src/lzf/lzfP.h @@ -144,7 +144,9 @@ using namespace std; # if defined (WIN32) # define LZF_USE_OFFSETS defined(_M_X64) # else -# if __cplusplus > 199711L +# if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8 +# include +# elif __cplusplus > 199711L # include # else # include