diff --git a/src/Canvas.cc b/src/Canvas.cc index 06d6df3..196ed61 100644 --- a/src/Canvas.cc +++ b/src/Canvas.cc @@ -15,6 +15,12 @@ using namespace v8; using namespace node; +#if NODE_VERSION_AT_LEAST(0,3,0) +#define BUFFER_DATA(buf) Buffer::Data(buf->handle_) +#else +#define BUFFER_DATA(buf) buf->data() +#endif + /* * PNG stream closure. */ @@ -162,7 +168,7 @@ EIO_AfterToBuffer(eio_req *req) { closure->pfn->Call(Context::GetCurrent()->Global(), 1, argv); } else { Buffer *buf = Buffer::New(closure->len); - memcpy(buf->data(), closure->data, closure->len); + memcpy(BUFFER_DATA(buf), closure->data, closure->len); Local argv[2] = { Local::New(Null()), Local::New(buf->handle_) }; closure->pfn->Call(Context::GetCurrent()->Global(), 2, argv); } @@ -207,7 +213,7 @@ Canvas::ToBuffer(const Arguments &args) { return ThrowException(Canvas::Error(status)); } else { Buffer *buf = Buffer::New(closure.len); - memcpy(buf->data(), closure.data, closure.len); + memcpy(BUFFER_DATA(buf), closure.data, closure.len); return buf->handle_; } } @@ -222,11 +228,7 @@ streamPNG(void *c, const uint8_t *data, unsigned len) { HandleScope scope; closure_t *closure = (closure_t *) c; Local buf = Buffer::New(len); -#if NODE_VERSION_AT_LEAST(0,3,0) - memcpy(Buffer::Data(buf->handle_), data, len); -#else - memcpy(buf->data(), data, len); -#endif + memcpy(BUFFER_DATA(buf), data, len); Local argv[3] = { Local::New(Null()) , Local::New(buf->handle_)