From f2c05255a03c4ec0bfd59bbcfc7c654ac8a913d4 Mon Sep 17 00:00:00 2001 From: Simon Hailes Date: Fri, 10 Nov 2017 10:25:27 +0000 Subject: [PATCH] resize: delete the dest we created on error, and if still present on destructor --- src/Matrix.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Matrix.cc b/src/Matrix.cc index 9a5839d..f397690 100755 --- a/src/Matrix.cc +++ b/src/Matrix.cc @@ -1899,10 +1899,14 @@ public: fx(fx), fy(fy), interpolation(interpolation), - success(0){ + success(0), + dest(null){ } ~ResizeASyncWorker() { + // don't leave this if it was allocated + // could happen if NaN does not call HandleSuccess? + delete dest; } void Execute() { @@ -1924,8 +1928,7 @@ public: Matrix *img = Nan::ObjectWrap::Unwrap(im_to_return); img->mat = dest->mat; delete dest; - - //delete dest; + dest = null; Local argv[] = { Nan::Null(), // err @@ -1938,6 +1941,8 @@ public: Nan::FatalException(try_catch); } } catch (...){ + delete dest; + dest = null; Local argv[] = { Nan::New("C++ exception wrapping response").ToLocalChecked(), // err Nan::Null() // result @@ -1951,6 +1956,7 @@ public: } } else { delete dest; + dest = null; Local argv[] = { Nan::New("C++ exception").ToLocalChecked(), // err