From 4c813ae887b8da0199c4b93cc439461670b81a7c Mon Sep 17 00:00:00 2001 From: nieben Date: Wed, 29 Nov 2023 09:11:29 +0800 Subject: [PATCH] fix-napi-err-return-bug Signed-off-by: nieben --- .../kits/js/backup/session_backup_n_exporter.cpp | 16 ++++++++++++++-- .../js/backup/session_restore_n_exporter.cpp | 16 ++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/interfaces/kits/js/backup/session_backup_n_exporter.cpp b/interfaces/kits/js/backup/session_backup_n_exporter.cpp index cc43ea228..713527c7f 100644 --- a/interfaces/kits/js/backup/session_backup_n_exporter.cpp +++ b/interfaces/kits/js/backup/session_backup_n_exporter.cpp @@ -85,8 +85,12 @@ static void onBundleBegin(weak_ptr pCallbacks, ErrCode err, co } auto cbCompl = [name {name}, errCode {err}](napi_env env, NError err) -> NVal { - NVal res; NVal bundleName = NVal::CreateUTF8String(env, name); + if (!err && errCode == 0) { + return bundleName; + } + + NVal res; if (err) { res = NVal {env, err.GetNapiErr(env)}; } else { @@ -120,8 +124,12 @@ static void onBundleEnd(weak_ptr pCallbacks, ErrCode err, cons } auto cbCompl = [name {name}, errCode {err}](napi_env env, NError err) -> NVal { - NVal res; NVal bundleName = NVal::CreateUTF8String(env, name); + if (!err && errCode == 0) { + return bundleName; + } + + NVal res; if (err) { res = NVal {env, err.GetNapiErr(env)}; } else { @@ -155,6 +163,10 @@ static void onAllBundlesEnd(weak_ptr pCallbacks, ErrCode err) } auto cbCompl = [errCode {err}](napi_env env, NError err) -> NVal { + if (!err && errCode == 0) { + return NVal::CreateUndefined(env); + } + NVal res; if (err) { res = NVal {env, err.GetNapiErr(env)}; diff --git a/interfaces/kits/js/backup/session_restore_n_exporter.cpp b/interfaces/kits/js/backup/session_restore_n_exporter.cpp index ab06dce5b..53d9c0df0 100644 --- a/interfaces/kits/js/backup/session_restore_n_exporter.cpp +++ b/interfaces/kits/js/backup/session_restore_n_exporter.cpp @@ -85,8 +85,12 @@ static void onBundleBegin(weak_ptr pCallbacks, ErrCode err, co } auto cbCompl = [name {name}, errCode {err}](napi_env env, NError err) -> NVal { - NVal res; NVal bundleName = NVal::CreateUTF8String(env, name); + if (!err && errCode == 0) { + return bundleName; + } + + NVal res; if (err) { res = NVal {env, err.GetNapiErr(env)}; } else { @@ -120,8 +124,12 @@ static void onBundleEnd(weak_ptr pCallbacks, ErrCode err, cons } auto cbCompl = [name {name}, errCode {err}](napi_env env, NError err) -> NVal { - NVal res; NVal bundleName = NVal::CreateUTF8String(env, name); + if (!err && errCode == 0) { + return bundleName; + } + + NVal res; if (err) { res = NVal {env, err.GetNapiErr(env)}; } else { @@ -155,6 +163,10 @@ static void onAllBundlesEnd(weak_ptr pCallbacks, ErrCode err) } auto cbCompl = [errCode {err}](napi_env env, NError err) -> NVal { + if (!err && errCode == 0) { + return NVal::CreateUndefined(env); + } + NVal res; if (err) { res = NVal {env, err.GetNapiErr(env)}; -- Gitee