From 54155ddfb684e322e50343a510196430602d649d Mon Sep 17 00:00:00 2001 From: wangjianqiang Date: Tue, 23 Aug 2022 15:35:55 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0callback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangjianqiang --- .../napi_fileaccess_helper.cpp | 64 ++++++++++--------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp index 8d24febd..ba18011c 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -103,48 +103,54 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i return thisVar; } +static napi_value GetCreateHelper(napi_env env, napi_callback_info info, size_t argc) +{ + napi_value result = nullptr; + napi_value cons = nullptr; + + size_t requireArgc = argc; + napi_value args[argc] = {nullptr}; + if (napi_get_cb_info(env, info, &argc, args, nullptr, nullptr) != napi_ok) { + return nullptr; + } + + if (argc > requireArgc || napi_get_reference_value(env, g_constructorRef, &cons) != napi_ok) { + HILOG_ERROR("Wrong argument count%{public}zu. or g_constructorRef reference is fail", argc); + return nullptr; + } + + if (napi_new_instance(env, cons, argc, args, &result) != napi_ok) { + return nullptr; + } + + return result; +} + napi_value AcquireFileAccessHelperWrap(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); - if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { + if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::THREE)) { NapiError(ERR_PARAM_NUMBER).ThrowErr(env); return nullptr; } napi_value result = nullptr; napi_value cons = nullptr; - if (funcArg.GetArgc() == NARG_CNT::ONE) { - size_t requireArgc = ARGS_ONE; - size_t argc = ARGS_ONE; - napi_value args[ARGS_ONE] = {nullptr}; - if (napi_get_cb_info(env, info, &argc, args, nullptr, nullptr) != napi_ok) { - return nullptr; - } - - if (argc > requireArgc || napi_get_reference_value(env, g_constructorRef, &cons) != napi_ok) { - HILOG_ERROR("Wrong argument count%{public}zu. or g_constructorRef reference is fail", argc); - return nullptr; - } - if (napi_new_instance(env, cons, ARGS_ONE, args, &result) != napi_ok) { - return nullptr; - } + if (funcArg.GetArgc() == NARG_CNT::ONE) { + result = GetCreateHelper(env, info, ARGS_ONE); } else if (funcArg.GetArgc() == NARG_CNT::TWO) { - size_t requireArgc = ARGS_TWO; - size_t argc = ARGS_TWO; - napi_value args[ARGS_TWO] = {nullptr}; - if (napi_get_cb_info(env, info, &argc, args, nullptr, nullptr) != napi_ok) { - return nullptr; - } - - if (argc > requireArgc || napi_get_reference_value(env, g_constructorRef, &cons) != napi_ok) { - HILOG_ERROR("Wrong argument count%{public}zu. or g_constructorRef reference is fail", argc); - return nullptr; + NVal cb(env, funcArg[NARG_POS::TWO]); + if (!cb.TypeIs(napi_function)) { + result = GetCreateHelper(env, info, ARGS_ONE); } - - if (napi_new_instance(env, cons, ARGS_TWO, args, &result) != napi_ok) { + result = GetCreateHelper(env, info, ARGS_TWO); + } else if(funcArg.GetArgc() == NARG_CNT::THREE) { + NVal cb(env, funcArg[NARG_POS::TWO]); + if (!cb.TypeIs(napi_function)) { return nullptr; } + result = GetCreateHelper(env, info, ARGS_TWO); } if (!IsTypeForNapiValue(env, result, napi_object)) { @@ -156,7 +162,7 @@ napi_value AcquireFileAccessHelperWrap(napi_env env, napi_callback_info info) } napi_value NAPI_CreateFileAccessHelper(napi_env env, napi_callback_info info) -{ +{ napi_value ret = AcquireFileAccessHelperWrap(env, info); if (ret == nullptr) { ret = WrapVoidToJS(env); -- Gitee From 6fb4e2664b22b40477af69a48928e487e9f7b0e3 Mon Sep 17 00:00:00 2001 From: wangjianqiang Date: Tue, 23 Aug 2022 15:43:24 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9codecheck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangjianqiang --- .../kits/napi/file_access_module/napi_fileaccess_helper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp index ba18011c..8ca71d47 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -145,7 +145,7 @@ napi_value AcquireFileAccessHelperWrap(napi_env env, napi_callback_info info) result = GetCreateHelper(env, info, ARGS_ONE); } result = GetCreateHelper(env, info, ARGS_TWO); - } else if(funcArg.GetArgc() == NARG_CNT::THREE) { + } else if (funcArg.GetArgc() == NARG_CNT::THREE) { NVal cb(env, funcArg[NARG_POS::TWO]); if (!cb.TypeIs(napi_function)) { return nullptr; @@ -162,7 +162,7 @@ napi_value AcquireFileAccessHelperWrap(napi_env env, napi_callback_info info) } napi_value NAPI_CreateFileAccessHelper(napi_env env, napi_callback_info info) -{ +{ napi_value ret = AcquireFileAccessHelperWrap(env, info); if (ret == nullptr) { ret = WrapVoidToJS(env); -- Gitee From 9144798ba8238be36d3d53cd6392c506bf027496 Mon Sep 17 00:00:00 2001 From: wangjianqiang Date: Tue, 23 Aug 2022 16:17:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangjianqiang --- .../file_access_module/napi_fileaccess_helper.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp index 8ca71d47..1c936f60 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -103,13 +103,14 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i return thisVar; } -static napi_value GetCreateHelper(napi_env env, napi_callback_info info, size_t argc) +static napi_value GetCreateHelper(napi_env env, napi_callback_info info, int number) { napi_value result = nullptr; napi_value cons = nullptr; - size_t requireArgc = argc; - napi_value args[argc] = {nullptr}; + size_t requireArgc = number; + size_t argc = number; + napi_value args[number] = {nullptr}; if (napi_get_cb_info(env, info, &argc, args, nullptr, nullptr) != napi_ok) { return nullptr; } @@ -140,13 +141,13 @@ napi_value AcquireFileAccessHelperWrap(napi_env env, napi_callback_info info) if (funcArg.GetArgc() == NARG_CNT::ONE) { result = GetCreateHelper(env, info, ARGS_ONE); } else if (funcArg.GetArgc() == NARG_CNT::TWO) { - NVal cb(env, funcArg[NARG_POS::TWO]); + NVal cb(env, funcArg[NARG_POS::SECOND]); if (!cb.TypeIs(napi_function)) { result = GetCreateHelper(env, info, ARGS_ONE); } result = GetCreateHelper(env, info, ARGS_TWO); } else if (funcArg.GetArgc() == NARG_CNT::THREE) { - NVal cb(env, funcArg[NARG_POS::TWO]); + NVal cb(env, funcArg[NARG_POS::SECOND]); if (!cb.TypeIs(napi_function)) { return nullptr; } -- Gitee