From 69977941091c74b9293cd955b31bb786f00fbe0d Mon Sep 17 00:00:00 2001 From: linchencl3 <932565568@qq.com> Date: Mon, 28 Jul 2025 14:45:54 +0800 Subject: [PATCH] opt GetPkgContextInfoList Issue: https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/ICP903 Signed-off-by: linchencl3 Change-Id: Ib7471a62e20e53784d2b2acd893b033081f4cb61 --- ecmascript/ecma_vm.h | 6 +++--- ecmascript/module/module_path_helper.cpp | 6 +++--- ecmascript/napi/test/jsnapi_third_tests.cpp | 13 +++++++++---- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ecmascript/ecma_vm.h b/ecmascript/ecma_vm.h index 3e128cf2cf..1848c7b90f 100644 --- a/ecmascript/ecma_vm.h +++ b/ecmascript/ecma_vm.h @@ -699,7 +699,7 @@ public: pkgNameList_.insert(list.begin(), list.end()); } - CMap GetPkgNameList() + const CMap &GetPkgNameList() { ReadLockHolder lock(pkgNameListLock_); return pkgNameList_; @@ -722,7 +722,7 @@ public: pkgContextInfoList_.insert(list.begin(), list.end()); } - inline CMap>> GetPkgContextInfoList() + inline const CMap>> &GetPkgContextInfoList() { ReadLockHolder lock(pkgContextInfoLock_); return pkgContextInfoList_; @@ -750,7 +750,7 @@ public: pkgAliasList_.insert(list.begin(), list.end()); } - CMap GetPkgAliasList() + const CMap &GetPkgAliasList() { ReadLockHolder lock(pkgAliasListLock_); return pkgAliasList_; diff --git a/ecmascript/module/module_path_helper.cpp b/ecmascript/module/module_path_helper.cpp index 77f8f0bb20..0874edf385 100644 --- a/ecmascript/module/module_path_helper.cpp +++ b/ecmascript/module/module_path_helper.cpp @@ -842,15 +842,15 @@ CVector ModulePathHelper::GetPkgContextInfoListElements(EcmaVM *vm, con if (packageName.empty()) { return resultList; } - CMap>> pkgContextList = vm->GetPkgContextInfoList(); + const CMap>> &pkgContextList = vm->GetPkgContextInfoList(); if (pkgContextList.find(moduleName) == pkgContextList.end()) { return resultList; } - CMap> pkgList = pkgContextList[moduleName]; + const CMap> &pkgList = pkgContextList.find(moduleName)->second; if (pkgList.find(packageName) == pkgList.end()) { return resultList; } - resultList = pkgList[packageName]; + resultList = pkgList.find(packageName)->second; return resultList; } diff --git a/ecmascript/napi/test/jsnapi_third_tests.cpp b/ecmascript/napi/test/jsnapi_third_tests.cpp index b236732c6b..a6648539f4 100644 --- a/ecmascript/napi/test/jsnapi_third_tests.cpp +++ b/ecmascript/napi/test/jsnapi_third_tests.cpp @@ -1460,11 +1460,16 @@ HWTEST_F_L0(JSNApiTests, UpdatePkgContextInfoList) newPkgList["hsp"] = {hspList}; JSNApi::UpdatePkgContextInfoList(vm_, newPkgList); - CMap>> vmPkgList = vm_->GetPkgContextInfoList(); + const CMap>> &vmPkgList = vm_->GetPkgContextInfoList(); EXPECT_EQ(vmPkgList.size(), 2); - EXPECT_EQ(vmPkgList["entry"]["entry"].size(), 12); - EXPECT_EQ(vmPkgList["hsp"].size(), 1); - EXPECT_EQ(vmPkgList["hsp"]["hsp"].size(), 12); + const CMap> &entryMap = vmPkgList.find("entry")->second; + const CVector &entryInfos = entryMap.find("entry")->second; + EXPECT_EQ(entryInfos.size(), 12); + + const CMap> &hspMap = vmPkgList.find("hsp")->second; + const CVector &hspInfos = hspMap.find("hsp")->second; + EXPECT_EQ(hspMap.size(), 1); + EXPECT_EQ(hspInfos.size(), 12); } HWTEST_F_L0(JSNApiTests, UpdatePkgNameList) -- Gitee