From 139ee8582eef2bbfef0250de51757292c6a7979d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20Unneb=C3=A4ck?= Date: Sun, 7 Feb 2016 10:43:59 +0100 Subject: [PATCH] fix segfault on node 0.10.x --- src/CanvasRenderingContext2d.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CanvasRenderingContext2d.cc b/src/CanvasRenderingContext2d.cc index 5e7b8d1..ff52bdb 100755 --- a/src/CanvasRenderingContext2d.cc +++ b/src/CanvasRenderingContext2d.cc @@ -731,13 +731,13 @@ NAN_METHOD(Context2d::GetImageData) { int dstStride = sw * 4; uint8_t *src = canvas->data(); - + #if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION <= 10 Local global = Context::GetCurrent()->Global(); Local sizeHandle = Nan::New(size); Local caargv[] = { sizeHandle }; - Local clampedArray = global->Get(Nan::New("Uint8ClampedArray").ToLocalChecked()).As()->NewInstance(3, caargv); + Local clampedArray = global->Get(Nan::New("Uint8ClampedArray").ToLocalChecked()).As()->NewInstance(1, caargv); #else Local buffer = ArrayBuffer::New(Isolate::GetCurrent(), size); Local clampedArray = Uint8ClampedArray::New(buffer, 0, size); @@ -745,7 +745,7 @@ NAN_METHOD(Context2d::GetImageData) { Nan::TypedArrayContents typedArrayContents(clampedArray); uint8_t* dst = *typedArrayContents; - + // Normalize data (argb -> rgba) for (int y = 0; y < sh; ++y) { uint32_t *row = (uint32_t *)(src + srcStride * (y + sy)); @@ -902,7 +902,7 @@ NAN_METHOD(Context2d::DrawImage) { dx - sx + (context->state->shadowOffsetX / fx) - pad + 1.4, dy - sy + (context->state->shadowOffsetY / fy) - pad + 1.4); cairo_paint(ctx); - + // cleanup cairo_destroy(shadow_context); cairo_surface_destroy(shadow_surface);