From aefdd06b928d165d9c7f4aa4e65320f4e7c9b3d7 Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 07:04:59 +0000 Subject: [PATCH 1/8] =?UTF-8?q?update=20interfaces/kits/napi/file=5Faccess?= =?UTF-8?q?=5Fmodule/napi=5Ffileaccess=5Fhelper.cpp.=20=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E6=B3=A8=E9=87=8Arelease?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: gf721 --- .../kits/napi/file_access_module/napi_fileaccess_helper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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..21e021ee 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -92,7 +92,7 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i return objectInfo == fileAccessHelper.get(); }); if (objectInfo != nullptr) { - objectInfo->Release(); + //objectInfo->Release(); delete objectInfo; } }; -- Gitee From fd700b80f7bd3e59539626b6ce10135155274fa1 Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 08:31:34 +0000 Subject: [PATCH 2/8] update interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp. change Signed-off-by: gf721 --- .../napi_fileaccess_helper.cpp | 84 ++++++++++++------- 1 file changed, 52 insertions(+), 32 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 21e021ee..56e0c27b 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -25,7 +25,6 @@ #include "ifile_access_notify.h" #include "napi_base_context.h" #include "napi_common_fileaccess.h" -#include "napi_error.h" #include "napi_notify_callback.h" #include "n_val.h" #include "securec.h" @@ -47,12 +46,14 @@ std::list> g_fileAccessHelperList; static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info info) { + HILOG_ERROR("**Releae last7**"); NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } + HILOG_ERROR("**Releae last6**"); napi_value thisVar = funcArg.GetThisVar(); std::shared_ptr fileAccessHelper = nullptr; bool isStageMode = false; @@ -62,44 +63,63 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i return nullptr; } + HILOG_ERROR("**Releae last5**"); auto context = OHOS::AbilityRuntime::GetStageModeContext(env, funcArg.GetArg(PARAM0)); if (context == nullptr) { HILOG_ERROR("FileAccessHelperConstructor: failed to get native context"); return nullptr; } + HILOG_ERROR("**Releae last4**"); if (funcArg.GetArgc() == NARG_CNT::ONE) { + HILOG_ERROR("**Releae 11**"); fileAccessHelper = FileAccessHelper::Creator(context); } else if (funcArg.GetArgc() == NARG_CNT::TWO) { std::vector wants; + HILOG_ERROR("**Releae 22**"); bool suss = UnwrapArrayWantFromJS(env, funcArg.GetArg(PARAM1), wants); if (!suss) { + HILOG_ERROR("**Releae 33**"); HILOG_ERROR("UnwrapArrayWantFromJS failed to get native wants"); return nullptr; } + HILOG_ERROR("**Releae 44**"); fileAccessHelper = FileAccessHelper::Creator(context, wants); } + HILOG_ERROR("**Releae last3**"); if (fileAccessHelper == nullptr) { + HILOG_ERROR("**Releae 55**"); HILOG_ERROR("FileAccessHelperConstructor: fileAccessHelper is nullptr"); return nullptr; } g_fileAccessHelperList.emplace_back(fileAccessHelper); + HILOG_ERROR("**Releae last1**"); auto finalize = [](napi_env env, void *data, void *hint) { + HILOG_ERROR("**Releae 66**"); FileAccessHelper *objectInfo = static_cast(data); + HILOG_ERROR("**Releae 77**"); g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { + HILOG_ERROR("**Releae last2**"); return objectInfo == fileAccessHelper.get(); }); + HILOG_ERROR("**Releae last22**"); if (objectInfo != nullptr) { + HILOG_ERROR("**Releae objectInfo != nullptr**"); //objectInfo->Release(); + HILOG_ERROR("**Releae 88**"); delete objectInfo; } }; + + HILOG_ERROR("**Releae 99**"); if (napi_wrap(env, thisVar, fileAccessHelper.get(), finalize, nullptr, nullptr) != napi_ok) { + HILOG_ERROR("**Releae 10**"); finalize(env, fileAccessHelper.get(), nullptr); return nullptr; } + HILOG_ERROR("**Releae 100**"); return thisVar; } @@ -107,7 +127,7 @@ napi_value AcquireFileAccessHelperWrap(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -168,7 +188,7 @@ napi_value NAPI_GetRegisterFileAccessExtAbilityInfo(napi_env env, napi_callback_ { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ZERO, NARG_CNT::ONE)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -191,7 +211,7 @@ napi_value NAPI_GetRegisterFileAccessExtAbilityInfo(napi_env env, napi_callback_ } NVal cb(env, funcArg[NARG_POS::FIRST]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "argument type unmatched"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -238,14 +258,14 @@ napi_value FileAccessHelperInit(napi_env env, napi_value exports) static FileAccessHelper *GetFileAccessHelper(napi_env env, napi_value thisVar) { if (thisVar == nullptr) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "thisVar is nullper"); return nullptr; } FileAccessHelper *fileAccessHelper = nullptr; napi_unwrap(env, thisVar, (void **)&fileAccessHelper); if (fileAccessHelper == nullptr) { - NapiError(ERR_GET_FILEACCESS_HELPER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "fileAccessHelper is nullper"); return nullptr; } return fileAccessHelper; @@ -260,13 +280,13 @@ static std::tuple, std::unique_ptr> GetRea std::unique_ptr name = nullptr; std::tie(succ, uri, std::ignore) = NVal(env, sourceFile).ToUTF8String(); if (!succ) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "first parameter is Invalid"); return { false, std::move(uri), std::move(name) }; } std::tie(succ, name, std::ignore) = NVal(env, targetParent).ToUTF8String(); if (!succ) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "second parameter is Invalid"); return { false, std::move(uri), std::move(name) }; } @@ -277,7 +297,7 @@ napi_value NAPI_OpenFile(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -285,14 +305,14 @@ napi_value NAPI_OpenFile(napi_env env, napi_callback_info info) std::unique_ptr uri; std::tie(succ, uri, std::ignore) = NVal(env, funcArg[NARG_POS::FIRST]).ToUTF8String(); if (!succ) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Invalid uri"); return nullptr; } int flags; std::tie(succ, flags) = NVal(env, funcArg[NARG_POS::SECOND]).ToInt32(); if (!succ) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Invalid flags"); return nullptr; } @@ -323,7 +343,7 @@ napi_value NAPI_OpenFile(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::THIRD]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -333,7 +353,7 @@ napi_value NAPI_CreateFile(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -375,7 +395,7 @@ napi_value NAPI_CreateFile(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::THIRD]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -385,7 +405,7 @@ napi_value NAPI_Mkdir(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -427,7 +447,7 @@ napi_value NAPI_Mkdir(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::THIRD]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -437,7 +457,7 @@ napi_value NAPI_Delete(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -445,7 +465,7 @@ napi_value NAPI_Delete(napi_env env, napi_callback_info info) std::unique_ptr uri; std::tie(succ, uri, std::ignore) = NVal(env, funcArg[NARG_POS::FIRST]).ToUTF8String(); if (!succ) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Invalid uri"); return nullptr; } @@ -476,7 +496,7 @@ napi_value NAPI_Delete(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::SECOND]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -486,7 +506,7 @@ napi_value NAPI_Move(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -529,7 +549,7 @@ napi_value NAPI_Move(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::THIRD]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -539,7 +559,7 @@ napi_value NAPI_Rename(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::TWO, NARG_CNT::THREE)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -581,7 +601,7 @@ napi_value NAPI_Rename(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::THIRD]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -591,7 +611,7 @@ napi_value NAPI_ListFile(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -599,7 +619,7 @@ napi_value NAPI_ListFile(napi_env env, napi_callback_info info) std::unique_ptr uri; std::tie(succ, uri, std::ignore) = NVal(env, funcArg[NARG_POS::FIRST]).ToUTF8String(); if (!succ) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Invalid uri"); return nullptr; } @@ -631,7 +651,7 @@ napi_value NAPI_ListFile(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::SECOND]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -641,7 +661,7 @@ napi_value NAPI_GetRoots(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ZERO, NARG_CNT::ONE)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -672,7 +692,7 @@ napi_value NAPI_GetRoots(napi_env env, napi_callback_info info) NVal cb(env, funcArg[NARG_POS::FIRST]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; @@ -682,7 +702,7 @@ napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info) { NFuncArg funcArg(env, info); if (!funcArg.InitArgs(NARG_CNT::ONE, NARG_CNT::TWO)) { - NapiError(ERR_PARAM_NUMBER).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Number of arguments unmatched"); return nullptr; } @@ -690,7 +710,7 @@ napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info) std::unique_ptr uri; std::tie(succ, uri, std::ignore) = NVal(env, funcArg[NARG_POS::FIRST]).ToUTF8String(); if (!succ) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "Invalid uri"); return nullptr; } @@ -722,7 +742,7 @@ napi_value NAPI_IsFileExist(napi_env env, napi_callback_info info) } NVal cb(env, funcArg[NARG_POS::SECOND]); if (!cb.TypeIs(napi_function)) { - NapiError(ERR_INVALID_PARAM).ThrowErr(env); + NError(EINVAL).ThrowErr(env, "not function type"); return nullptr; } return NAsyncWorkCallback(env, thisVar, cb).Schedule(procedureName, cbExec, cbComplete).val_; -- Gitee From 0835d0156737aa9fc9e11727f21793913412d153 Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 08:53:01 +0000 Subject: [PATCH 3/8] update interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp. change1 Signed-off-by: gf721 --- .../napi_fileaccess_helper.cpp | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 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 56e0c27b..400e6a8e 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -97,20 +97,21 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i HILOG_ERROR("**Releae last1**"); auto finalize = [](napi_env env, void *data, void *hint) { - HILOG_ERROR("**Releae 66**"); - FileAccessHelper *objectInfo = static_cast(data); - HILOG_ERROR("**Releae 77**"); - g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { - HILOG_ERROR("**Releae last2**"); - return objectInfo == fileAccessHelper.get(); - }); - HILOG_ERROR("**Releae last22**"); - if (objectInfo != nullptr) { - HILOG_ERROR("**Releae objectInfo != nullptr**"); - //objectInfo->Release(); - HILOG_ERROR("**Releae 88**"); - delete objectInfo; - } + + // HILOG_ERROR("**Releae 66**"); + // FileAccessHelper *objectInfo = static_cast(data); + // HILOG_ERROR("**Releae 77**"); + // g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { + // HILOG_ERROR("**Releae last2**"); + // return objectInfo == fileAccessHelper.get(); + // }); + // HILOG_ERROR("**Releae last22**"); + // if (objectInfo != nullptr) { + // HILOG_ERROR("**Releae objectInfo != nullptr**"); + // //objectInfo->Release(); + // HILOG_ERROR("**Releae 88**"); + // delete objectInfo; + // } }; HILOG_ERROR("**Releae 99**"); -- Gitee From dcc6db1cc1ec59afeb1eea188f4059d2f6362804 Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 17:06:49 +0800 Subject: [PATCH 4/8] ch Signed-off-by: gf721 --- .../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 400e6a8e..6d1ca6b6 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -100,7 +100,7 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i // HILOG_ERROR("**Releae 66**"); // FileAccessHelper *objectInfo = static_cast(data); - // HILOG_ERROR("**Releae 77**"); + // HILOG_ERROR("**Releae 77*1*"); // g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { // HILOG_ERROR("**Releae last2**"); // return objectInfo == fileAccessHelper.get(); @@ -828,4 +828,4 @@ napi_value NAPI_Off(napi_env env, napi_callback_info info) return NVal::CreateUndefined(env).val_; } } // namespace FileAccessFwk -} // namespace OHOS \ No newline at end of file +} // namespace OHOS -- Gitee From 5425c4eb1dcd9114547a29a6d0579ac5272c7a1b Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 17:41:30 +0800 Subject: [PATCH 5/8] 1 Signed-off-by: gf721 --- .../napi_fileaccess_helper.cpp | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 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 6d1ca6b6..c6d1e5c8 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -98,20 +98,20 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i HILOG_ERROR("**Releae last1**"); auto finalize = [](napi_env env, void *data, void *hint) { - // HILOG_ERROR("**Releae 66**"); - // FileAccessHelper *objectInfo = static_cast(data); - // HILOG_ERROR("**Releae 77*1*"); - // g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { - // HILOG_ERROR("**Releae last2**"); - // return objectInfo == fileAccessHelper.get(); - // }); - // HILOG_ERROR("**Releae last22**"); - // if (objectInfo != nullptr) { - // HILOG_ERROR("**Releae objectInfo != nullptr**"); - // //objectInfo->Release(); - // HILOG_ERROR("**Releae 88**"); + HILOG_ERROR("**Releae 66**"); + FileAccessHelper *objectInfo = static_cast(data); + HILOG_ERROR("**Releae 77*1*"); + g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { + HILOG_ERROR("**Releae last2**"); + return objectInfo == fileAccessHelper.get(); + }); + HILOG_ERROR("**Releae last22**"); + if (objectInfo != nullptr) { + HILOG_ERROR("**Releae objectInfo != nullptr**"); + objectInfo->Release(); + HILOG_ERROR("**Releae 88**"); // delete objectInfo; - // } + } }; HILOG_ERROR("**Releae 99**"); -- Gitee From 9c1f4df6befcea57cd508f088314fde2b80b0e2a Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 18:33:39 +0800 Subject: [PATCH 6/8] 1 Signed-off-by: gf721 --- .../file_access_module/napi_fileaccess_helper.cpp | 14 ++++++++++++-- 1 file changed, 12 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 c6d1e5c8..76447d0f 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -43,6 +43,7 @@ namespace { } std::list> g_fileAccessHelperList; +std::mutex fileMutex;std::mutex fileMutex; static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info info) { @@ -93,7 +94,10 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i HILOG_ERROR("FileAccessHelperConstructor: fileAccessHelper is nullptr"); return nullptr; } - g_fileAccessHelperList.emplace_back(fileAccessHelper); + { + std::lock_guard lock(fileMutex); + g_fileAccessHelperList.emplace_back(fileAccessHelper); + } HILOG_ERROR("**Releae last1**"); auto finalize = [](napi_env env, void *data, void *hint) { @@ -101,10 +105,13 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i HILOG_ERROR("**Releae 66**"); FileAccessHelper *objectInfo = static_cast(data); HILOG_ERROR("**Releae 77*1*"); + { + std::lock_guard lock(fileMutex); g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { HILOG_ERROR("**Releae last2**"); return objectInfo == fileAccessHelper.get(); }); + } HILOG_ERROR("**Releae last22**"); if (objectInfo != nullptr) { HILOG_ERROR("**Releae objectInfo != nullptr**"); @@ -243,7 +250,10 @@ napi_value FileAccessHelperInit(napi_env env, napi_value exports) sizeof(properties) / sizeof(*properties), properties, &cons)); - g_fileAccessHelperList.clear(); + { + std::lock_guard lock(fileMutex); + g_fileAccessHelperList.clear(); + } NAPI_CALL(env, napi_create_reference(env, cons, INITIAL_REFCOUNT, &g_constructorRef)); NAPI_CALL(env, napi_set_named_property(env, exports, FILEACCESS_CLASS_NAME.c_str(), cons)); -- Gitee From db5afaa96ab83a9c9dc2da16a864e32b42381fc6 Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 19:06:25 +0800 Subject: [PATCH 7/8] 1 Signed-off-by: gf721 --- .../kits/napi/file_access_module/napi_fileaccess_helper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 76447d0f..6f07b9c5 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -43,7 +43,7 @@ namespace { } std::list> g_fileAccessHelperList; -std::mutex fileMutex;std::mutex fileMutex; +std::mutex fileMutex; static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info info) { -- Gitee From 6f013baed5f4ed1e257dca32724ca9161d82e58a Mon Sep 17 00:00:00 2001 From: gf721 Date: Tue, 23 Aug 2022 20:21:22 +0800 Subject: [PATCH 8/8] 1 Signed-off-by: gf721 --- .../napi_fileaccess_helper.cpp | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 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 6f07b9c5..da739506 100644 --- a/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp +++ b/interfaces/kits/napi/file_access_module/napi_fileaccess_helper.cpp @@ -95,8 +95,8 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i return nullptr; } { - std::lock_guard lock(fileMutex); - g_fileAccessHelperList.emplace_back(fileAccessHelper); + std::lock_guard lock(fileMutex); + g_fileAccessHelperList.emplace_back(fileAccessHelper); } HILOG_ERROR("**Releae last1**"); @@ -105,19 +105,19 @@ static napi_value FileAccessHelperConstructor(napi_env env, napi_callback_info i HILOG_ERROR("**Releae 66**"); FileAccessHelper *objectInfo = static_cast(data); HILOG_ERROR("**Releae 77*1*"); - { - std::lock_guard lock(fileMutex); - g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { - HILOG_ERROR("**Releae last2**"); - return objectInfo == fileAccessHelper.get(); - }); - } + { + std::lock_guard lock(fileMutex); + g_fileAccessHelperList.remove_if([objectInfo](const std::shared_ptr &fileAccessHelper) { + HILOG_ERROR("**Releae last2**"); + return objectInfo == fileAccessHelper.get(); + }); + } HILOG_ERROR("**Releae last22**"); if (objectInfo != nullptr) { HILOG_ERROR("**Releae objectInfo != nullptr**"); objectInfo->Release(); HILOG_ERROR("**Releae 88**"); - // delete objectInfo; + delete objectInfo; } }; @@ -251,7 +251,7 @@ napi_value FileAccessHelperInit(napi_env env, napi_value exports) properties, &cons)); { - std::lock_guard lock(fileMutex); + std::lock_guard lock(fileMutex); g_fileAccessHelperList.clear(); } NAPI_CALL(env, napi_create_reference(env, cons, INITIAL_REFCOUNT, &g_constructorRef)); -- Gitee