From d26717d6c2211e527108fbf7466dab93201a8a68 Mon Sep 17 00:00:00 2001 From: XadillaX Date: Fri, 23 Jan 2015 17:00:40 +0800 Subject: [PATCH 1/2] fix a bug occurred the compilation error below: 1.0.3/src/node.h:251:34: note: candidate function not viable: cannot convert argument of incomplete type 'const void *' to 'const char *' NODE_EXTERN v8::Local Encode(v8::Isolate* isolate, ^ --- nan.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nan.h b/nan.h index fa15e266..0913e88d 100644 --- a/nan.h +++ b/nan.h @@ -1847,7 +1847,7 @@ NAN_INLINE v8::Local NanEncode( #if (NODE_MODULE_VERSION > 0x000B) return node::Encode( v8::Isolate::GetCurrent() - , buf, len + , (const char *)buf, len , static_cast(encoding)); #else # if (NODE_MODULE_VERSION < 0x000B) From c01a2fbba05570756c5d88d935eda56565c988df Mon Sep 17 00:00:00 2001 From: XadillaX Date: Fri, 23 Jan 2015 19:04:09 +0800 Subject: [PATCH 2/2] use `static_cast(buf)` to instead of `(const char *)buf` --- nan.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/nan.h b/nan.h index 0913e88d..7bc21523 100644 --- a/nan.h +++ b/nan.h @@ -1844,21 +1844,28 @@ namespace Nan { NAN_INLINE v8::Local NanEncode( const void *buf, size_t len, enum Nan::Encoding encoding = Nan::BINARY) { +#if (NODE_MODULE_VERSION >= 42) + return node::Encode( + v8::Isolate::GetCurrent() + , static_cast(buf), len + , static_cast(encoding)); +#else #if (NODE_MODULE_VERSION > 0x000B) return node::Encode( v8::Isolate::GetCurrent() - , (const char *)buf, len + , buf, len , static_cast(encoding)); #else -# if (NODE_MODULE_VERSION < 0x000B) +#if (NODE_MODULE_VERSION < 0x000B) if (encoding == Nan::BUFFER) { assert(len <= node::Buffer::kMaxLength); return v8::Local::New(node::Buffer::New( static_cast(const_cast(buf)), len)->handle_); } -# endif +#endif return node::Encode(buf, len, static_cast(encoding)); #endif +#endif } NAN_INLINE ssize_t NanDecodeBytes(