!12671 fix cj namespace leak

Merge pull request !12671 from liuyics15/master
This commit is contained in:
openharmony_ci
2025-02-19 01:43:00 +00:00
committed by Gitee
2 changed files with 18 additions and 3 deletions
@@ -229,9 +229,18 @@ void CJEnvironment::InitSpawnEnv()
void CJEnvironment::PreloadLibs()
{
LOGI("start Preloadlibs");
LoadCJLibrary(SDK, "libohos.ability.so");
LoadCJLibrary(SDK, "libohos.component.so");
LoadCJLibrary(SDK, "libohos.window.so");
auto lib = LoadCJLibrary(SDK, "libohos.ability.so");
if (lib) {
preloadLibs_.emplace_back(lib);
}
lib = LoadCJLibrary(SDK, "libohos.component.so");
if (lib) {
preloadLibs_.emplace_back(lib);
}
lib = LoadCJLibrary(SDK, "libohos.window.so");
if (lib) {
preloadLibs_.emplace_back(lib);
}
}
void CJEnvironment::SetAppPath(const std::string& appPath)
@@ -266,6 +275,10 @@ CJEnvironment::~CJEnvironment()
StopRuntime();
delete lazyApis_;
for (auto lib : preloadLibs_) {
dlclose(lib);
}
}
CJEnvironment* CJEnvironment::GetInstance()
@@ -298,6 +311,7 @@ bool CJEnvironment::LoadRuntimeApis()
return false;
}
#undef RTLIB_NAME
preloadLibs_.emplace_back(dso);
if (!LoadSymbolInitCJRuntime(dso, *lazyApis_) ||
!LoadSymbolInitUIScheduler(dso, *lazyApis_) ||
!LoadSymbolRunUIScheduler(dso, *lazyApis_) ||
@@ -123,6 +123,7 @@ private:
void* uiScheduler_ {nullptr};
SanitizerKind sanitizerKind_ {SanitizerKind::NONE};
NSMode nsMode_;
std::vector<void*> preloadLibs_;
};
}