mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 12:43:16 -04:00
!12671 fix cj namespace leak
Merge pull request !12671 from liuyics15/master
This commit is contained in:
@@ -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_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user