diff --git a/Libraries/LibCoreDump/Reader.cpp b/Libraries/LibCoreDump/Reader.cpp index 13f36f2795..b8df7f767a 100644 --- a/Libraries/LibCoreDump/Reader.cpp +++ b/Libraries/LibCoreDump/Reader.cpp @@ -110,9 +110,9 @@ Optional Reader::peek_memory(FlatPtr address) const const ELF::Core::MemoryRegionInfo* Reader::region_containing(FlatPtr address) const { const ELF::Core::MemoryRegionInfo* ret = nullptr; - for_each_memory_region_info([&ret, address](const ELF::Core::MemoryRegionInfo* region_info) { - if (region_info->region_start <= address && region_info->region_end >= address) { - ret = region_info; + for_each_memory_region_info([&ret, address](const ELF::Core::MemoryRegionInfo& region_info) { + if (region_info.region_start <= address && region_info.region_end >= address) { + ret = ®ion_info; return IterationDecision::Break; } return IterationDecision::Continue; diff --git a/Libraries/LibCoreDump/Reader.h b/Libraries/LibCoreDump/Reader.h index 294de205a2..3e8bc7c330 100644 --- a/Libraries/LibCoreDump/Reader.h +++ b/Libraries/LibCoreDump/Reader.h @@ -81,8 +81,8 @@ void Reader::for_each_memory_region_info(Func func) const for (NotesEntryIterator it((const u8*)m_coredump_image.program_header(m_notes_segment_index).raw_data()); !it.at_end(); it.next()) { if (it.type() != ELF::Core::NotesEntryHeader::Type::MemoryRegionInfo) continue; - auto* region = (const ELF::Core::MemoryRegionInfo*)(it.current()); - IterationDecision decision = func(region); + auto& memory_region_info = reinterpret_cast(*it.current()); + IterationDecision decision = func(memory_region_info); if (decision == IterationDecision::Break) return; }