================
@@ -220,17 +220,18 @@ bool ObjectContainerMachOFileset::ParseHeader() {
}
size_t ObjectContainerMachOFileset::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 file_size, lldb_private::ModuleSpecList &specs) {
const size_t initial_count = specs.GetSize();
+ if (!extractor_sp)
+ return initial_count;
----------------
jasonmolenda wrote:
There's no documentation for what ObjectFile::GetModuleSpecification is
returning, but I can find one use where it assumes that the return value is the
same as `specs.GetSize()`, the total number of module specifications in that
[inout] variable, not the number of newly added specifications.
```
ModuleSpecList module_specs;
const size_t num_specs = ObjectFile::GetModuleSpecifications(
module_spec.GetFileSpec(), file_offset, file_size, module_specs);
if (num_specs > 0) {
ModuleSpec matching_module_spec;
if (num_specs == 1) {
if (module_specs.GetModuleSpecAtIndex(0, matching_module_spec)) {
[...]
} else {
// Fat binary. No architecture specified, check if there is
// only one platform for all of the architectures.
std::vector<PlatformSP> candidates;
std::vector<ArchSpec> archs;
for (const ModuleSpec &spec : module_specs.ModuleSpecs())
```
I think returning `initial_count` is correct here.
https://github.com/llvm/llvm-project/pull/178347
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits