From 8a6cff6f0e71585f4e9d4df4da703fa7ec1c3cdd Mon Sep 17 00:00:00 2001 From: jiangweixing Date: Tue, 11 Feb 2020 15:57:07 +0800 Subject: [PATCH] fix: image binding object finalize crash --- node/binding/Image.cc | 10 ++++++++-- node/binding/Image.h | 5 ----- node/package.json | 1 + 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/node/binding/Image.cc b/node/binding/Image.cc index c5b31f5..a7dcad3 100644 --- a/node/binding/Image.cc +++ b/node/binding/Image.cc @@ -108,12 +108,18 @@ void ImageWorker::setOnLoadCallback(Napi::Function func) void ImageWorker::OnOK() { - this->onLoadCallback.Call({Env().Undefined()}); + if( this->onLoadCallback ) + { + this->onLoadCallback.Call({Env().Undefined()}); + } } void ImageWorker::OnError(const Napi::Error &e) { - this->onErrorCallback.Call({Napi::String::New(Env(), e.Message())}); + if(this->onErrorCallback) + { + this->onErrorCallback.Call({Napi::String::New(Env(), e.Message())}); + } } void ImageWorker::Execute() diff --git a/node/binding/Image.h b/node/binding/Image.h index 4dcea4f..de38525 100644 --- a/node/binding/Image.h +++ b/node/binding/Image.h @@ -38,11 +38,6 @@ class Image : public Napi::ObjectWrap public: Image(const Napi::CallbackInfo &info); static void Init(Napi::Env env, Napi::Object exports); - virtual ~Image() - { - delete (mWorker); - this->mWorker = nullptr; - } int getWidth(); int getHeight(); std::vector &getPixels(); diff --git a/node/package.json b/node/package.json index f68458c..e3d59bc 100644 --- a/node/package.json +++ b/node/package.json @@ -9,6 +9,7 @@ "scripts": { "install": "./script/install.sh $local", "dev": "cmake-js build", + "debug": "cmake-js -D build", "compile": "cmake-js compile --CDCORE_DIR=./core/", "prestart": "export DISPLAY=:99.0 && Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &", "test": "cp ./third_party/font/wqy-microhei.ttc ./ && cp ./third_party/font/.fontcache ./ && node ./examples/$case && rm wqy-microhei.ttc .fontcache",