================
@@ -586,20 +586,26 @@ static bool GetOsFromOSABI(unsigned char osabi_byte,
}
size_t ObjectFileELF::GetModuleSpecifications(
- const lldb_private::FileSpec &file, lldb::DataBufferSP &data_sp,
+ const lldb_private::FileSpec &file, lldb::DataExtractorSP &extractor_sp,
lldb::offset_t data_offset, lldb::offset_t file_offset,
lldb::offset_t length, lldb_private::ModuleSpecList &specs) {
Log *log = GetLog(LLDBLog::Modules);
const size_t initial_count = specs.GetSize();
- if (ObjectFileELF::MagicBytesMatch(data_sp, 0, data_sp->GetByteSize())) {
+ if (!extractor_sp || !extractor_sp->HasData())
+ return 0;
+ if (ObjectFileELF::MagicBytesMatch(extractor_sp->GetSharedDataBuffer(), 0,
+ extractor_sp->GetByteSize())) {
DataExtractor data;
- data.SetData(data_sp);
+ if (extractor_sp && extractor_sp->HasData()) {
+ data = *extractor_sp->GetSubsetExtractorSP(data_offset);
+ data_offset = 0;
+ }
elf::ELFHeader header;
lldb::offset_t header_offset = data_offset;
if (header.Parse(data, &header_offset)) {
- if (data_sp) {
+ if (extractor_sp) {
----------------
bulbazord wrote:
Is this check even useful? Should this be checking `data` instead? I suppose
`extractor_sp` being valid implies the validity of `data` but that feels
indirect in terms of intent.
https://github.com/llvm/llvm-project/pull/178347
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits