Skip to content

Commit b50fbe8

Browse files
committed
Revert "Merge commit 'b618cf7a378d' from llvm.org/release/11.x into apple/stable/20200714"
This reverts commit 8760017, reversing changes made to 8711013.
1 parent a3a3539 commit b50fbe8

File tree

13 files changed

+112
-165
lines changed

13 files changed

+112
-165
lines changed

lldb/include/lldb/Core/ModuleList.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -449,11 +449,12 @@ class ModuleList {
449449

450450
static bool ModuleIsInCache(const Module *module_ptr);
451451

452-
static Status
453-
GetSharedModule(const ModuleSpec &module_spec, lldb::ModuleSP &module_sp,
454-
const FileSpecList *module_search_paths_ptr,
455-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules,
456-
bool *did_create_ptr, bool always_create = false);
452+
static Status GetSharedModule(const ModuleSpec &module_spec,
453+
lldb::ModuleSP &module_sp,
454+
const FileSpecList *module_search_paths_ptr,
455+
lldb::ModuleSP *old_module_sp_ptr,
456+
bool *did_create_ptr,
457+
bool always_create = false);
457458

458459
static bool RemoveSharedModule(lldb::ModuleSP &module_sp);
459460

lldb/include/lldb/Target/Platform.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,10 +301,11 @@ class Platform : public PluginInterface {
301301
LocateExecutableScriptingResources(Target *target, Module &module,
302302
Stream *feedback_stream);
303303

304-
virtual Status GetSharedModule(
305-
const ModuleSpec &module_spec, Process *process,
306-
lldb::ModuleSP &module_sp, const FileSpecList *module_search_paths_ptr,
307-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules, bool *did_create_ptr);
304+
virtual Status GetSharedModule(const ModuleSpec &module_spec,
305+
Process *process, lldb::ModuleSP &module_sp,
306+
const FileSpecList *module_search_paths_ptr,
307+
lldb::ModuleSP *old_module_sp_ptr,
308+
bool *did_create_ptr);
308309

309310
virtual bool GetModuleSpec(const FileSpec &module_file_spec,
310311
const ArchSpec &arch, ModuleSpec &module_spec);

lldb/source/Core/ModuleList.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -737,11 +737,11 @@ size_t ModuleList::RemoveOrphanSharedModules(bool mandatory) {
737737
return GetSharedModuleList().RemoveOrphans(mandatory);
738738
}
739739

740-
Status
741-
ModuleList::GetSharedModule(const ModuleSpec &module_spec, ModuleSP &module_sp,
742-
const FileSpecList *module_search_paths_ptr,
743-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules,
744-
bool *did_create_ptr, bool always_create) {
740+
Status ModuleList::GetSharedModule(const ModuleSpec &module_spec,
741+
ModuleSP &module_sp,
742+
const FileSpecList *module_search_paths_ptr,
743+
ModuleSP *old_module_sp_ptr,
744+
bool *did_create_ptr, bool always_create) {
745745
ModuleList &shared_module_list = GetSharedModuleList();
746746
std::lock_guard<std::recursive_mutex> guard(
747747
shared_module_list.m_modules_mutex);
@@ -753,6 +753,8 @@ ModuleList::GetSharedModule(const ModuleSpec &module_spec, ModuleSP &module_sp,
753753

754754
if (did_create_ptr)
755755
*did_create_ptr = false;
756+
if (old_module_sp_ptr)
757+
old_module_sp_ptr->reset();
756758

757759
const UUID *uuid_ptr = module_spec.GetUUIDPtr();
758760
const FileSpec &module_file_spec = module_spec.GetFileSpec();
@@ -773,8 +775,8 @@ ModuleList::GetSharedModule(const ModuleSpec &module_spec, ModuleSP &module_sp,
773775

774776
// Make sure the file for the module hasn't been modified
775777
if (module_sp->FileHasChanged()) {
776-
if (old_modules)
777-
old_modules->push_back(module_sp);
778+
if (old_module_sp_ptr && !*old_module_sp_ptr)
779+
*old_module_sp_ptr = module_sp;
778780

779781
Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_MODULES));
780782
if (log != nullptr)
@@ -928,8 +930,8 @@ ModuleList::GetSharedModule(const ModuleSpec &module_spec, ModuleSP &module_sp,
928930
located_binary_modulespec.GetFileSpec());
929931
if (file_spec_mod_time != llvm::sys::TimePoint<>()) {
930932
if (file_spec_mod_time != module_sp->GetModificationTime()) {
931-
if (old_modules)
932-
old_modules->push_back(module_sp);
933+
if (old_module_sp_ptr)
934+
*old_module_sp_ptr = module_sp;
933935
shared_module_list.Remove(module_sp);
934936
module_sp.reset();
935937
}

lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ BringInRemoteFile(Platform *platform,
221221
lldb_private::Status PlatformDarwin::GetSharedModuleWithLocalCache(
222222
const lldb_private::ModuleSpec &module_spec, lldb::ModuleSP &module_sp,
223223
const lldb_private::FileSpecList *module_search_paths_ptr,
224-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules, bool *did_create_ptr) {
224+
lldb::ModuleSP *old_module_sp_ptr, bool *did_create_ptr) {
225225

226226
Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PLATFORM));
227227
LLDB_LOGF(log,
@@ -262,7 +262,7 @@ lldb_private::Status PlatformDarwin::GetSharedModuleWithLocalCache(
262262
}
263263

264264
err = ModuleList::GetSharedModule(module_spec, module_sp,
265-
module_search_paths_ptr, old_modules,
265+
module_search_paths_ptr, old_module_sp_ptr,
266266
did_create_ptr);
267267
if (module_sp)
268268
return err;
@@ -365,8 +365,8 @@ lldb_private::Status PlatformDarwin::GetSharedModuleWithLocalCache(
365365

366366
Status PlatformDarwin::GetSharedModule(
367367
const ModuleSpec &module_spec, Process *process, ModuleSP &module_sp,
368-
const FileSpecList *module_search_paths_ptr,
369-
llvm::SmallVectorImpl<ModuleSP> *old_modules, bool *did_create_ptr) {
368+
const FileSpecList *module_search_paths_ptr, ModuleSP *old_module_sp_ptr,
369+
bool *did_create_ptr) {
370370
Status error;
371371
module_sp.reset();
372372

@@ -375,16 +375,16 @@ Status PlatformDarwin::GetSharedModule(
375375
// module first.
376376
if (m_remote_platform_sp) {
377377
error = m_remote_platform_sp->GetSharedModule(
378-
module_spec, process, module_sp, module_search_paths_ptr, old_modules,
379-
did_create_ptr);
378+
module_spec, process, module_sp, module_search_paths_ptr,
379+
old_module_sp_ptr, did_create_ptr);
380380
}
381381
}
382382

383383
if (!module_sp) {
384384
// Fall back to the local platform and find the file locally
385385
error = Platform::GetSharedModule(module_spec, process, module_sp,
386-
module_search_paths_ptr, old_modules,
387-
did_create_ptr);
386+
module_search_paths_ptr,
387+
old_module_sp_ptr, did_create_ptr);
388388

389389
const FileSpec &platform_file = module_spec.GetFileSpec();
390390
if (!module_sp && module_search_paths_ptr && platform_file) {
@@ -397,7 +397,7 @@ Status PlatformDarwin::GetSharedModule(
397397
new_module_spec.GetFileSpec() = bundle_directory;
398398
if (Host::ResolveExecutableInBundle(new_module_spec.GetFileSpec())) {
399399
Status new_error(Platform::GetSharedModule(
400-
new_module_spec, process, module_sp, nullptr, old_modules,
400+
new_module_spec, process, module_sp, nullptr, old_module_sp_ptr,
401401
did_create_ptr));
402402

403403
if (module_sp)
@@ -424,8 +424,8 @@ Status PlatformDarwin::GetSharedModule(
424424
ModuleSpec new_module_spec(module_spec);
425425
new_module_spec.GetFileSpec() = new_file_spec;
426426
Status new_error(Platform::GetSharedModule(
427-
new_module_spec, process, module_sp, nullptr, old_modules,
428-
did_create_ptr));
427+
new_module_spec, process, module_sp, nullptr,
428+
old_module_sp_ptr, did_create_ptr));
429429

430430
if (module_sp) {
431431
module_sp->SetPlatformFileSpec(new_file_spec);
@@ -1683,8 +1683,8 @@ PlatformDarwin::LaunchProcess(lldb_private::ProcessLaunchInfo &launch_info) {
16831683

16841684
lldb_private::Status PlatformDarwin::FindBundleBinaryInExecSearchPaths(
16851685
const ModuleSpec &module_spec, Process *process, ModuleSP &module_sp,
1686-
const FileSpecList *module_search_paths_ptr,
1687-
llvm::SmallVectorImpl<ModuleSP> *old_modules, bool *did_create_ptr) {
1686+
const FileSpecList *module_search_paths_ptr, ModuleSP *old_module_sp_ptr,
1687+
bool *did_create_ptr) {
16881688
const FileSpec &platform_file = module_spec.GetFileSpec();
16891689
// See if the file is present in any of the module_search_paths_ptr
16901690
// directories.
@@ -1741,9 +1741,9 @@ lldb_private::Status PlatformDarwin::FindBundleBinaryInExecSearchPaths(
17411741
if (FileSystem::Instance().Exists(path_to_try)) {
17421742
ModuleSpec new_module_spec(module_spec);
17431743
new_module_spec.GetFileSpec() = path_to_try;
1744-
Status new_error(
1745-
Platform::GetSharedModule(new_module_spec, process, module_sp,
1746-
nullptr, old_modules, did_create_ptr));
1744+
Status new_error(Platform::GetSharedModule(
1745+
new_module_spec, process, module_sp, nullptr, old_module_sp_ptr,
1746+
did_create_ptr));
17471747

17481748
if (module_sp) {
17491749
module_sp->SetPlatformFileSpec(path_to_try);

lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class PlatformDarwin : public PlatformPOSIX {
4646
GetSharedModule(const lldb_private::ModuleSpec &module_spec,
4747
lldb_private::Process *process, lldb::ModuleSP &module_sp,
4848
const lldb_private::FileSpecList *module_search_paths_ptr,
49-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules,
49+
lldb::ModuleSP *old_module_sp_ptr,
5050
bool *did_create_ptr) override;
5151

5252
size_t GetSoftwareBreakpointTrapOpcode(
@@ -132,7 +132,7 @@ class PlatformDarwin : public PlatformPOSIX {
132132
virtual lldb_private::Status GetSharedModuleWithLocalCache(
133133
const lldb_private::ModuleSpec &module_spec, lldb::ModuleSP &module_sp,
134134
const lldb_private::FileSpecList *module_search_paths_ptr,
135-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules, bool *did_create_ptr);
135+
lldb::ModuleSP *old_module_sp_ptr, bool *did_create_ptr);
136136

137137
struct SDKEnumeratorInfo {
138138
lldb_private::FileSpec found_path;
@@ -158,7 +158,7 @@ class PlatformDarwin : public PlatformPOSIX {
158158
const lldb_private::ModuleSpec &module_spec,
159159
lldb_private::Process *process, lldb::ModuleSP &module_sp,
160160
const lldb_private::FileSpecList *module_search_paths_ptr,
161-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules, bool *did_create_ptr);
161+
lldb::ModuleSP *old_module_sp_ptr, bool *did_create_ptr);
162162

163163
static std::string FindComponentInPath(llvm::StringRef path,
164164
llvm::StringRef component);

lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -727,8 +727,8 @@ PlatformDarwinKernel::GetDWARFBinaryInDSYMBundle(FileSpec dsym_bundle) {
727727

728728
Status PlatformDarwinKernel::GetSharedModule(
729729
const ModuleSpec &module_spec, Process *process, ModuleSP &module_sp,
730-
const FileSpecList *module_search_paths_ptr,
731-
llvm::SmallVectorImpl<ModuleSP> *old_modules, bool *did_create_ptr) {
730+
const FileSpecList *module_search_paths_ptr, ModuleSP *old_module_sp_ptr,
731+
bool *did_create_ptr) {
732732
Status error;
733733
module_sp.reset();
734734
const FileSpec &platform_file = module_spec.GetFileSpec();
@@ -740,26 +740,26 @@ Status PlatformDarwinKernel::GetSharedModule(
740740
if (!kext_bundle_id.empty() && module_spec.GetUUID().IsValid()) {
741741
if (kext_bundle_id == "mach_kernel") {
742742
return GetSharedModuleKernel(module_spec, process, module_sp,
743-
module_search_paths_ptr, old_modules,
743+
module_search_paths_ptr, old_module_sp_ptr,
744744
did_create_ptr);
745745
} else {
746746
return GetSharedModuleKext(module_spec, process, module_sp,
747-
module_search_paths_ptr, old_modules,
747+
module_search_paths_ptr, old_module_sp_ptr,
748748
did_create_ptr);
749749
}
750750
} else {
751751
// Give the generic methods, including possibly calling into DebugSymbols
752752
// framework on macOS systems, a chance.
753753
return PlatformDarwin::GetSharedModule(module_spec, process, module_sp,
754-
module_search_paths_ptr, old_modules,
755-
did_create_ptr);
754+
module_search_paths_ptr,
755+
old_module_sp_ptr, did_create_ptr);
756756
}
757757
}
758758

759759
Status PlatformDarwinKernel::GetSharedModuleKext(
760760
const ModuleSpec &module_spec, Process *process, ModuleSP &module_sp,
761-
const FileSpecList *module_search_paths_ptr,
762-
llvm::SmallVectorImpl<ModuleSP> *old_modules, bool *did_create_ptr) {
761+
const FileSpecList *module_search_paths_ptr, ModuleSP *old_module_sp_ptr,
762+
bool *did_create_ptr) {
763763
Status error;
764764
module_sp.reset();
765765
const FileSpec &platform_file = module_spec.GetFileSpec();
@@ -785,8 +785,8 @@ Status PlatformDarwinKernel::GetSharedModuleKext(
785785
// Give the generic methods, including possibly calling into DebugSymbols
786786
// framework on macOS systems, a chance.
787787
error = PlatformDarwin::GetSharedModule(module_spec, process, module_sp,
788-
module_search_paths_ptr, old_modules,
789-
did_create_ptr);
788+
module_search_paths_ptr,
789+
old_module_sp_ptr, did_create_ptr);
790790
if (error.Success() && module_sp.get()) {
791791
return error;
792792
}
@@ -811,8 +811,8 @@ Status PlatformDarwinKernel::GetSharedModuleKext(
811811

812812
Status PlatformDarwinKernel::GetSharedModuleKernel(
813813
const ModuleSpec &module_spec, Process *process, ModuleSP &module_sp,
814-
const FileSpecList *module_search_paths_ptr,
815-
llvm::SmallVectorImpl<ModuleSP> *old_modules, bool *did_create_ptr) {
814+
const FileSpecList *module_search_paths_ptr, ModuleSP *old_module_sp_ptr,
815+
bool *did_create_ptr) {
816816
Status error;
817817
module_sp.reset();
818818

@@ -878,8 +878,8 @@ Status PlatformDarwinKernel::GetSharedModuleKernel(
878878
// Give the generic methods, including possibly calling into DebugSymbols
879879
// framework on macOS systems, a chance.
880880
error = PlatformDarwin::GetSharedModule(module_spec, process, module_sp,
881-
module_search_paths_ptr, old_modules,
882-
did_create_ptr);
881+
module_search_paths_ptr,
882+
old_module_sp_ptr, did_create_ptr);
883883
if (error.Success() && module_sp.get()) {
884884
return error;
885885
}

lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class PlatformDarwinKernel : public PlatformDarwin {
5757
GetSharedModule(const lldb_private::ModuleSpec &module_spec,
5858
lldb_private::Process *process, lldb::ModuleSP &module_sp,
5959
const lldb_private::FileSpecList *module_search_paths_ptr,
60-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules,
60+
lldb::ModuleSP *old_module_sp_ptr,
6161
bool *did_create_ptr) override;
6262

6363
bool GetSupportedArchitectureAtIndex(uint32_t idx,

lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,10 @@ lldb_private::Status PlatformMacOSX::GetSharedModule(
157157
const lldb_private::ModuleSpec &module_spec, Process *process,
158158
lldb::ModuleSP &module_sp,
159159
const lldb_private::FileSpecList *module_search_paths_ptr,
160-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules, bool *did_create_ptr) {
161-
Status error = GetSharedModuleWithLocalCache(module_spec, module_sp,
162-
module_search_paths_ptr,
163-
old_modules, did_create_ptr);
160+
lldb::ModuleSP *old_module_sp_ptr, bool *did_create_ptr) {
161+
Status error = GetSharedModuleWithLocalCache(
162+
module_spec, module_sp, module_search_paths_ptr, old_module_sp_ptr,
163+
did_create_ptr);
164164

165165
if (module_sp) {
166166
if (module_spec.GetArchitecture().GetCore() ==
@@ -171,16 +171,15 @@ lldb_private::Status PlatformMacOSX::GetSharedModule(
171171
ModuleSpec module_spec_x86_64(module_spec);
172172
module_spec_x86_64.GetArchitecture() = ArchSpec("x86_64-apple-macosx");
173173
lldb::ModuleSP x86_64_module_sp;
174-
llvm::SmallVector<lldb::ModuleSP, 1> old_x86_64_modules;
174+
lldb::ModuleSP old_x86_64_module_sp;
175175
bool did_create = false;
176176
Status x86_64_error = GetSharedModuleWithLocalCache(
177177
module_spec_x86_64, x86_64_module_sp, module_search_paths_ptr,
178-
&old_x86_64_modules, &did_create);
178+
&old_x86_64_module_sp, &did_create);
179179
if (x86_64_module_sp && x86_64_module_sp->GetObjectFile()) {
180180
module_sp = x86_64_module_sp;
181-
if (old_modules)
182-
old_modules->append(old_x86_64_modules.begin(),
183-
old_x86_64_modules.end());
181+
if (old_module_sp_ptr)
182+
*old_module_sp_ptr = old_x86_64_module_sp;
184183
if (did_create_ptr)
185184
*did_create_ptr = did_create;
186185
return x86_64_error;
@@ -190,9 +189,7 @@ lldb_private::Status PlatformMacOSX::GetSharedModule(
190189
}
191190

192191
if (!module_sp) {
193-
error = FindBundleBinaryInExecSearchPaths(module_spec, process, module_sp,
194-
module_search_paths_ptr,
195-
old_modules, did_create_ptr);
192+
error = FindBundleBinaryInExecSearchPaths (module_spec, process, module_sp, module_search_paths_ptr, old_module_sp_ptr, did_create_ptr);
196193
}
197194
return error;
198195
}

lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class PlatformMacOSX : public PlatformDarwin {
4040
GetSharedModule(const lldb_private::ModuleSpec &module_spec,
4141
lldb_private::Process *process, lldb::ModuleSP &module_sp,
4242
const lldb_private::FileSpecList *module_search_paths_ptr,
43-
llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules,
43+
lldb::ModuleSP *old_module_sp_ptr,
4444
bool *did_create_ptr) override;
4545

4646
const char *GetDescription() override { return GetDescriptionStatic(); }

lldb/source/Plugins/Platform/MacOSX/PlatformRemoteDarwinDevice.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,8 @@ Status PlatformRemoteDarwinDevice::GetSymbolFile(const FileSpec &platform_file,
499499

500500
Status PlatformRemoteDarwinDevice::GetSharedModule(
501501
const ModuleSpec &module_spec, Process *process, ModuleSP &module_sp,
502-
const FileSpecList *module_search_paths_ptr,
503-
llvm::SmallVectorImpl<ModuleSP> *old_modules, bool *did_create_ptr) {
502+
const FileSpecList *module_search_paths_ptr, ModuleSP *old_module_sp_ptr,
503+
bool *did_create_ptr) {
504504
// For iOS, the SDK files are all cached locally on the host system. So first
505505
// we ask for the file in the cached SDK, then we attempt to get a shared
506506
// module for the right architecture with the right UUID.
@@ -603,25 +603,24 @@ Status PlatformRemoteDarwinDevice::GetSharedModule(
603603
// This may not be an SDK-related module. Try whether we can bring in the
604604
// thing to our local cache.
605605
error = GetSharedModuleWithLocalCache(module_spec, module_sp,
606-
module_search_paths_ptr, old_modules,
607-
did_create_ptr);
606+
module_search_paths_ptr,
607+
old_module_sp_ptr, did_create_ptr);
608608
if (error.Success())
609609
return error;
610610

611611
// See if the file is present in any of the module_search_paths_ptr
612612
// directories.
613613
if (!module_sp)
614-
error = PlatformDarwin::FindBundleBinaryInExecSearchPaths(
615-
module_spec, process, module_sp, module_search_paths_ptr, old_modules,
616-
did_create_ptr);
614+
error = PlatformDarwin::FindBundleBinaryInExecSearchPaths (module_spec, process, module_sp,
615+
module_search_paths_ptr, old_module_sp_ptr, did_create_ptr);
617616

618617
if (error.Success())
619618
return error;
620619

621620
const bool always_create = false;
622-
error = ModuleList::GetSharedModule(module_spec, module_sp,
623-
module_search_paths_ptr, old_modules,
624-
did_create_ptr, always_create);
621+
error = ModuleList::GetSharedModule(
622+
module_spec, module_sp, module_search_paths_ptr, old_module_sp_ptr,
623+
did_create_ptr, always_create);
625624

626625
if (module_sp)
627626
module_sp->SetPlatformFileSpec(platform_file);

0 commit comments

Comments
 (0)