From 03bc1a397dd64d5180fde275275120e8a40bb1a7 Mon Sep 17 00:00:00 2001 From: "Ying-Chun Liu (PaulLiu)" Date: Fri, 8 Apr 2022 06:47:08 +0800 Subject: [PATCH] src: FaceRecognizer.cc: fix FTBFS on nodejs 14 When building on Debian with nodejs 14, we got the following error: src/FaceRecognizer.cc:202:74: error: base operand of '->' has non-pointer type 'v8::MaybeLocal' src/FaceRecognizer.cc:206:56: error: base operand of '->' has non-pointer type 'v8::MaybeLocal' src/FaceRecognizer.cc:207:50: error: could not convert '((v8::Object*)valarr.v8::Local::operator->())-> v8::Object::Get(Nan::GetCurrentContext(), 1)' from 'v8::MaybeLocal' to 'v8::Local' This commit use .ToLocalChecked() to convert v8::MaybeLocal to v8::Local Signed-off-by: Ying-Chun Liu (PaulLiu) --- src/FaceRecognizer.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/FaceRecognizer.cc b/src/FaceRecognizer.cc index 3be6431..c6eb651 100644 --- a/src/FaceRecognizer.cc +++ b/src/FaceRecognizer.cc @@ -199,12 +199,12 @@ Local UnwrapTrainingData(Nan::NAN_METHOD_ARGS_TYPE info, Local valarr = Local::Cast(val); - if (valarr->Length() != 2 || !valarr->Get(Nan::GetCurrentContext(),0)->IsInt32()) { + if (valarr->Length() != 2 || !valarr->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->IsInt32()) { JSTHROW("train takes a list of [label, image] tuples") } - int label = valarr->Get(Nan::GetCurrentContext(),0)->Uint32Value(Nan::GetCurrentContext()).ToChecked(); - cv::Mat im = fromMatrixOrFilename(valarr->Get(Nan::GetCurrentContext(),1)); //this is ok because we clone the image + int label = valarr->Get(Nan::GetCurrentContext(),0).ToLocalChecked()->Uint32Value(Nan::GetCurrentContext()).ToChecked(); + cv::Mat im = fromMatrixOrFilename(valarr->Get(Nan::GetCurrentContext(),1).ToLocalChecked()); //this is ok because we clone the image im = im.clone(); if (im.channels() == 3) { cv::cvtColor(im, im, CV_RGB2GRAY);