Browse Source

fix segfault when onload and onerror are not function

v1.x
William Riancho 11 years ago
parent
commit
1256ce44d7
  1. 8
      src/Image.cc
  2. 4
      test/image.test.js

8
src/Image.cc

@ -258,7 +258,11 @@ Image::readPNG(void *c, uint8_t *data, unsigned int len) {
NAN_GETTER(Image::GetOnload) {
NanScope();
Image *img = ObjectWrap::Unwrap<Image>(args.This());
if (img->onload) {
NanReturnValue(img->onload->GetFunction());
} else {
NanReturnNull();
}
}
/*
@ -279,7 +283,11 @@ NAN_SETTER(Image::SetOnload) {
NAN_GETTER(Image::GetOnerror) {
NanScope();
Image *img = ObjectWrap::Unwrap<Image>(args.This());
if (img->onerror) {
NanReturnValue(img->onerror->GetFunction());
} else {
NanReturnNull();
}
}
/*

4
test/image.test.js

@ -18,6 +18,8 @@ module.exports = {
var img = new Image
, n = 0;
assert.strictEqual(null, img.onload);
assert.strictEqual(false, img.complete);
img.onload = function(){
++n;
@ -39,6 +41,8 @@ module.exports = {
, error
, n = 0;
assert.strictEqual(null, img.onerror);
assert.strictEqual(false, img.complete);
img.onload = function(){
assert.fail('called onload');

Loading…
Cancel
Save