From 21bc8cfe8f4043ef6cf5c0b6d6756477378dd7aa Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Mon, 28 Dec 2020 16:26:54 +0100 Subject: [PATCH] LibCoreDump: Make for_each_thread_info() callback arg a reference It's never nullptr, so it should be a reference. --- Applications/CrashDaemon/main.cpp | 8 ++++---- Libraries/LibCoreDump/Reader.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Applications/CrashDaemon/main.cpp b/Applications/CrashDaemon/main.cpp index 479d226a1c..aefa6885f3 100644 --- a/Applications/CrashDaemon/main.cpp +++ b/Applications/CrashDaemon/main.cpp @@ -134,11 +134,11 @@ static void backtrace(const String& coredump_path) { size_t thread_index = 0; auto coredump = CoreDump::Reader::create(coredump_path); - coredump->for_each_thread_info([&thread_index, &coredump](const ELF::Core::ThreadInfo* thread_info) { - dbgln("Backtrace for thread #{}, tid={}", thread_index++, thread_info->tid); + coredump->for_each_thread_info([&thread_index, &coredump](const ELF::Core::ThreadInfo& thread_info) { + dbgln("Backtrace for thread #{}, tid={}", thread_index++, thread_info.tid); - uint32_t* ebp = (uint32_t*)thread_info->regs.ebp; - uint32_t* eip = (uint32_t*)thread_info->regs.eip; + uint32_t* ebp = (uint32_t*)thread_info.regs.ebp; + uint32_t* eip = (uint32_t*)thread_info.regs.eip; while (ebp && eip) { auto line = backtrace_line(*coredump, (FlatPtr)eip); diff --git a/Libraries/LibCoreDump/Reader.h b/Libraries/LibCoreDump/Reader.h index 3e8bc7c330..7ec49ff51c 100644 --- a/Libraries/LibCoreDump/Reader.h +++ b/Libraries/LibCoreDump/Reader.h @@ -94,8 +94,8 @@ void Reader::for_each_thread_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::ThreadInfo) continue; - auto* region = (const ELF::Core::ThreadInfo*)(it.current()); - IterationDecision decision = func(region); + auto& thread_info = reinterpret_cast(*it.current()); + IterationDecision decision = func(thread_info); if (decision == IterationDecision::Break) return; }