Skip to content

Commit 3c91d58

Browse files
authored
Revert "[NFC][lldb] Add a null check, actually use new SharedModuleLi… (#155327)
…st class" This reverts commit 234e075. I'm reverting this because the ASAN build fails running the TestMiniDumpUUID.py test. This happens because the pointer is already freed before the call to `RemoveIfOrpahaned`. The ModuleList implementation never actually dereferences the pointer, so it worked correctly, but the new map implementation does dereference it, hence the crash.
1 parent e665cf3 commit 3c91d58

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

lldb/source/Core/ModuleList.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -844,8 +844,6 @@ class SharedModuleList {
844844
}
845845

846846
bool RemoveIfOrphaned(const Module *module_ptr) {
847-
if (!module_ptr)
848-
return false;
849847
std::lock_guard<std::recursive_mutex> guard(GetMutex());
850848
RemoveFromMap(*module_ptr, /*if_orphaned=*/true);
851849
return m_list.RemoveIfOrphaned(module_ptr);
@@ -982,7 +980,7 @@ class SharedModuleList {
982980
};
983981

984982
struct SharedModuleListInfo {
985-
SharedModuleList module_list;
983+
ModuleList module_list;
986984
ModuleListProperties module_list_properties;
987985
};
988986
}
@@ -1000,7 +998,7 @@ static SharedModuleListInfo &GetSharedModuleListInfo()
1000998
return *g_shared_module_list_info;
1001999
}
10021000

1003-
static SharedModuleList &GetSharedModuleList() {
1001+
static ModuleList &GetSharedModuleList() {
10041002
return GetSharedModuleListInfo().module_list;
10051003
}
10061004

@@ -1010,8 +1008,8 @@ ModuleListProperties &ModuleList::GetGlobalModuleListProperties() {
10101008

10111009
bool ModuleList::ModuleIsInCache(const Module *module_ptr) {
10121010
if (module_ptr) {
1013-
SharedModuleList &shared_module_list = GetSharedModuleList();
1014-
return shared_module_list.FindModule(*module_ptr).get() != nullptr;
1011+
ModuleList &shared_module_list = GetSharedModuleList();
1012+
return shared_module_list.FindModule(module_ptr).get() != nullptr;
10151013
}
10161014
return false;
10171015
}
@@ -1034,8 +1032,9 @@ ModuleList::GetSharedModule(const ModuleSpec &module_spec, ModuleSP &module_sp,
10341032
const FileSpecList *module_search_paths_ptr,
10351033
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules,
10361034
bool *did_create_ptr, bool always_create) {
1037-
SharedModuleList &shared_module_list = GetSharedModuleList();
1038-
std::lock_guard<std::recursive_mutex> guard(shared_module_list.GetMutex());
1035+
ModuleList &shared_module_list = GetSharedModuleList();
1036+
std::lock_guard<std::recursive_mutex> guard(
1037+
shared_module_list.m_modules_mutex);
10391038
char path[PATH_MAX];
10401039

10411040
Status error;

0 commit comments

Comments
 (0)