From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH 5/7] Add m_builder member to lnp_state_machine
Date: Sun, 07 Sep 2025 13:29:17 -0600 [thread overview]
Message-ID: <20250907-breakpoint-cu-expand-v1-5-dd2beef9d475@tromey.com> (raw)
In-Reply-To: <20250907-breakpoint-cu-expand-v1-0-dd2beef9d475@tromey.com>
I noticed that several spots in lnp_state_machine fetch the CU's
builder. Since this can't change over the lifetime of the object, it
seemed nicer to simply cache it.
---
gdb/dwarf2/line-program.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/gdb/dwarf2/line-program.c b/gdb/dwarf2/line-program.c
index e1a9f31bed409884808dd690ada942a58e66dd91..732f6fa13357dfa66c2ba493b186cabbcb08285a 100644
--- a/gdb/dwarf2/line-program.c
+++ b/gdb/dwarf2/line-program.c
@@ -154,6 +154,9 @@ class lnp_state_machine
struct dwarf2_cu *m_cu;
+ /* The builder associated with the CU. */
+ buildsym_compunit *m_builder;
+
gdbarch *m_gdbarch;
/* The line number header. */
@@ -296,7 +299,7 @@ lnp_state_machine::handle_const_add_pc ()
bool
lnp_state_machine::record_line_p ()
{
- if (m_cu->get_builder ()->get_current_subfile () != m_last_subfile)
+ if (m_builder->get_current_subfile () != m_last_subfile)
return true;
if (m_line != m_last_line)
return true;
@@ -398,7 +401,7 @@ lnp_state_machine::record_line (bool end_sequence)
address, and we are switching to create a non-stmt line, then
discard the new line. */
bool file_changed
- = m_last_subfile != m_cu->get_builder ()->get_current_subfile ();
+ = m_last_subfile != m_builder->get_current_subfile ();
bool ignore_this_line
= ((file_changed && !end_sequence && m_last_address == m_address
&& ((m_flags & LEF_IS_STMT) == 0)
@@ -419,13 +422,12 @@ lnp_state_machine::record_line (bool end_sequence)
if (record_line_p ())
{
- buildsym_compunit *builder = m_cu->get_builder ();
dwarf_record_line_1 (m_gdbarch,
- builder->get_current_subfile (),
+ m_builder->get_current_subfile (),
m_line, m_address, lte_flags,
m_currently_recording_lines ? m_cu : nullptr);
- m_last_subfile = m_cu->get_builder ()->get_current_subfile ();
+ m_last_subfile = m_builder->get_current_subfile ();
m_last_line = m_line;
}
}
@@ -444,6 +446,7 @@ lnp_state_machine::record_line (bool end_sequence)
lnp_state_machine::lnp_state_machine (struct dwarf2_cu *cu, gdbarch *arch,
line_header *lh)
: m_cu (cu),
+ m_builder (cu->get_builder ()),
m_gdbarch (arch),
m_line_header (lh),
/* Call `gdbarch_adjust_dwarf2_line' on the initial 0 address as
--
2.49.0
next prev parent reply other threads:[~2025-09-07 19:31 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-07 19:29 [PATCH 0/7] Shrink dwarf2/read.c and clean up lnp_state_machine Tom Tromey
2025-09-07 19:29 ` [PATCH 1/7] Move lnp_state_machine to new file Tom Tromey
2025-09-08 16:04 ` Simon Marchi
2025-09-09 0:51 ` Tom Tromey
2025-09-09 0:52 ` Simon Marchi
2025-09-09 2:33 ` Eli Zaretskii
2025-09-09 23:25 ` Tom Tromey
2025-09-07 19:29 ` [PATCH 2/7] Move compute_include_file_name earlier Tom Tromey
2025-09-08 16:08 ` Simon Marchi
2025-09-09 0:46 ` Tom Tromey
2025-09-07 19:29 ` [PATCH 3/7] Boolify line-program.c Tom Tromey
2025-09-08 17:07 ` Simon Marchi
2025-09-09 0:48 ` Tom Tromey
2025-09-09 0:50 ` Simon Marchi
2025-09-09 1:11 ` Tom Tromey
2025-09-09 23:55 ` Tom Tromey
2025-09-10 1:51 ` Simon Marchi
2025-09-07 19:29 ` [PATCH 4/7] Change dwarf_record_line_p to be a method Tom Tromey
2025-09-07 19:29 ` Tom Tromey [this message]
2025-09-08 17:12 ` [PATCH 5/7] Add m_builder member to lnp_state_machine Simon Marchi
2025-09-07 19:29 ` [PATCH 6/7] Change dwarf_finish_line to be a method Tom Tromey
2025-09-08 17:14 ` Simon Marchi
2025-09-07 19:29 ` [PATCH 7/7] Change dwarf_record_line_1 " Tom Tromey
2025-09-08 17:17 ` Simon Marchi
2025-09-08 17:18 ` [PATCH 0/7] Shrink dwarf2/read.c and clean up lnp_state_machine Simon Marchi
2025-09-09 0:54 ` Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250907-breakpoint-cu-expand-v1-5-dd2beef9d475@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox