Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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