================
@@ -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

Reply via email to