From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gateway36.websitewelcome.com (gateway36.websitewelcome.com [192.185.192.36]) by sourceware.org (Postfix) with ESMTPS id A20993945C38 for ; Sat, 3 Oct 2020 19:37:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A20993945C38 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=tom@tromey.com Received: from cm12.websitewelcome.com (cm12.websitewelcome.com [100.42.49.8]) by gateway36.websitewelcome.com (Postfix) with ESMTP id 4CCAB40118621 for ; Sat, 3 Oct 2020 14:37:41 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id OnLhkC2Pqn9FWOnLhk5Y7t; Sat, 03 Oct 2020 14:37:41 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=EmFmb/ma9BIhi84dmnTVVvUpFnYUe+hZLbr13Ii1kNY=; b=fVJ8mUUinsKLCE600y2H8N+uOe 9twtp/plX/eOoQPTqTrA11PEdgH7Fap0W+0kFgdzLKZEM5mZLqmu8QL6wvB915BUPBs7d6s5q4uX3 +vsyP+Q/vzfeX+eyvoCCowStC; Received: from 174-16-122-38.hlrn.qwest.net ([174.16.122.38]:48958 helo=bapiya.Home) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1kOnLg-000LTO-Vo; Sat, 03 Oct 2020 13:37:41 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 6/6] Change target_section_table to std::vector alias Date: Sat, 3 Oct 2020 13:37:35 -0600 Message-Id: <20201003193735.2532-7-tom@tromey.com> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20201003193735.2532-1-tom@tromey.com> References: <20201003193735.2532-1-tom@tromey.com> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 174.16.122.38 X-Source-L: No X-Exim-ID: 1kOnLg-000LTO-Vo X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 174-16-122-38.hlrn.qwest.net (bapiya.Home) [174.16.122.38]:48958 X-Source-Auth: tom+tromey.com X-Email-Count: 7 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3035.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_ABUSEAT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Oct 2020 19:37:45 -0000 Because target_section_table only holds a vector, and because it is used in an "open" way, this patch makes it just be an alias for the std::vector specialization. This makes the code less wordy. If we do ever want to add more specialized behavior to this type, it's simple enough to convert it back to a struct with the few needed methods implied by this change. 2020-10-03 Tom Tromey * target.h (struct target_ops) : Update. (target_get_section_table): Update. * target.c (target_get_section_table, target_section_by_addr) (memory_xfer_partial_1): Update. * target-section.h (target_section_table): Now an alias. * target-delegates.c: Rebuild. * target-debug.h (target_debug_print_target_section_table_p): Rename from target_debug_print_struct_target_section_table_p. * symfile.c (build_section_addr_info_from_section_table): Update. * solib.c (solib_map_sections, solib_contains_address_p): Update. * solib-svr4.c (scan_dyntag): Update. * solib-dsbt.c (scan_dyntag): Update. * remote.c (remote_target::remote_xfer_live_readonly_partial): Update. * record-full.c (record_full_core_target::xfer_partial): Update. * progspace.h (struct program_space) : Update. * exec.h (print_section_info): Update. * exec.c (exec_target::close, build_section_table) (add_target_sections, add_target_sections_of_objfile) (remove_target_sections, exec_on_vfork) (section_table_available_memory) (section_table_xfer_memory_partial) (exec_target::get_section_table, exec_target::xfer_partial) (print_section_info, set_section_command) (exec_set_section_address, exec_target::has_memory): Update. * corelow.c (core_target::build_file_mappings) (core_target::xfer_partial, core_target::info_proc_mappings) (core_target::info_proc_mappings): Update. * bfd-target.c (class target_bfd): Update --- gdb/ChangeLog | 32 +++++++++++++++++++++ gdb/bfd-target.c | 2 +- gdb/corelow.c | 10 +++---- gdb/exec.c | 63 +++++++++++++++++++----------------------- gdb/exec.h | 2 +- gdb/progspace.h | 2 +- gdb/record-full.c | 2 +- gdb/remote.c | 6 ++-- gdb/solib-dsbt.c | 2 +- gdb/solib-svr4.c | 2 +- gdb/solib.c | 4 +-- gdb/symfile.c | 4 +-- gdb/target-debug.h | 2 +- gdb/target-delegates.c | 14 +++++----- gdb/target-section.h | 5 +--- gdb/target.c | 12 ++++---- gdb/target.h | 5 ++-- 17 files changed, 94 insertions(+), 75 deletions(-) diff --git a/gdb/bfd-target.c b/gdb/bfd-target.c index d5defab9a80..bf4a98594bd 100644 --- a/gdb/bfd-target.c +++ b/gdb/bfd-target.c @@ -59,7 +59,7 @@ class target_bfd : public target_ops /* The section table build from the ALLOC sections in BFD. Note that we can't rely on extracting the BFD from a random section in the table, since the table can be legitimately empty. */ - struct target_section_table m_table; + target_section_table m_table; }; target_xfer_status diff --git a/gdb/corelow.c b/gdb/corelow.c index 193dccbeeb5..d557475e06f 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -266,8 +266,8 @@ core_target::build_file_mappings () bfd_set_section_alignment (sec, 2); /* Set target_section fields. */ - m_core_file_mappings.sections.emplace_back (); - target_section &ts = m_core_file_mappings.sections.back (); + m_core_file_mappings.emplace_back (); + target_section &ts = m_core_file_mappings.back (); ts.addr = start; ts.endaddr = end; ts.owner = nullptr; @@ -814,7 +814,7 @@ core_target::xfer_partial (enum target_object object, const char *annex, or the like) as this should provide a more accurate result. If not, check the stratum beneath us, which should be the file stratum. */ - if (!m_core_file_mappings.sections.empty ()) + if (!m_core_file_mappings.empty ()) xfer_status = xfer_memory_via_mappings (readbuf, writebuf, offset, len, xfered_len); else @@ -1098,7 +1098,7 @@ get_current_core_target () void core_target::info_proc_mappings (struct gdbarch *gdbarch) { - if (!m_core_file_mappings.sections.empty ()) + if (!m_core_file_mappings.empty ()) { printf_filtered (_("Mapped address spaces:\n\n")); if (gdbarch_addr_bit (gdbarch) == 32) @@ -1117,7 +1117,7 @@ core_target::info_proc_mappings (struct gdbarch *gdbarch) } } - for (const target_section &tsp : m_core_file_mappings.sections) + for (const target_section &tsp : m_core_file_mappings) { ULONGEST start = tsp.addr; ULONGEST end = tsp.endaddr; diff --git a/gdb/exec.c b/gdb/exec.c index ab47757c2b4..dd322129139 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -75,7 +75,7 @@ struct exec_target final : public target_ops const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) override; - struct target_section_table *get_section_table () override; + target_section_table *get_section_table () override; void files_info () override; bool has_memory () override; @@ -183,7 +183,7 @@ exec_target::close () for (struct program_space *ss : program_spaces) { set_current_program_space (ss); - current_target_sections->sections.clear (); + current_target_sections->clear (); exec_close (); } } @@ -598,8 +598,8 @@ build_section_table (struct bfd *some_bfd) if (!(aflag & SEC_ALLOC)) continue; - table.sections.emplace_back (); - target_section § = table.sections.back (); + table.emplace_back (); + target_section § = table.back (); sect.owner = NULL; sect.the_bfd_section = asect; sect.addr = bfd_section_vma (asect); @@ -616,14 +616,14 @@ void add_target_sections (void *owner, const target_section_table §ions) { - struct target_section_table *table = current_target_sections; + target_section_table *table = current_target_sections; - if (!sections.sections.empty ()) + if (!sections.empty ()) { - for (const target_section &s : sections.sections) + for (const target_section &s : sections) { - table->sections.push_back (s); - table->sections.back ().owner = owner; + table->push_back (s); + table->back ().owner = owner; } scoped_restore_current_pspace_and_thread restore_pspace_thread; @@ -651,7 +651,7 @@ add_target_sections (void *owner, void add_target_sections_of_objfile (struct objfile *objfile) { - struct target_section_table *table = current_target_sections; + target_section_table *table = current_target_sections; struct obj_section *osect; gdb_assert (objfile != nullptr); @@ -662,8 +662,8 @@ add_target_sections_of_objfile (struct objfile *objfile) if (bfd_section_size (osect->the_bfd_section) == 0) continue; - table->sections.emplace_back (); - target_section &ts = table->sections.back (); + table->emplace_back (); + target_section &ts = table->back (); ts.addr = obj_section_addr (osect); ts.endaddr = obj_section_endaddr (osect); ts.the_bfd_section = osect->the_bfd_section; @@ -677,22 +677,22 @@ add_target_sections_of_objfile (struct objfile *objfile) void remove_target_sections (void *owner) { - struct target_section_table *table = current_target_sections; + target_section_table *table = current_target_sections; gdb_assert (owner != NULL); - auto it = std::remove_if (table->sections.begin (), - table->sections.end (), + auto it = std::remove_if (table->begin (), + table->end (), [&] (target_section §) { return sect.owner == owner; }); - table->sections.erase (it, table->sections.end ()); + table->erase (it, table->end ()); /* If we don't have any more sections to read memory from, remove the file_stratum target from the stack of each inferior sharing the program space. */ - if (table->sections.empty ()) + if (table->empty ()) { scoped_restore_current_pspace_and_thread restore_pspace_thread; program_space *curr_pspace = current_program_space; @@ -702,7 +702,7 @@ remove_target_sections (void *owner) if (inf->pspace != curr_pspace) continue; - if (!inf->pspace->target_sections.sections.empty ()) + if (!inf->pspace->target_sections.empty ()) continue; switch_to_inferior_no_thread (inf); @@ -716,7 +716,7 @@ remove_target_sections (void *owner) void exec_on_vfork () { - if (!current_program_space->target_sections.sections.empty ()) + if (!current_program_space->target_sections.empty ()) push_target (&exec_ops); } @@ -779,7 +779,7 @@ section_table_available_memory (CORE_ADDR memaddr, ULONGEST len, { std::vector memory; - for (const target_section &p : sections.sections) + for (const target_section &p : sections) { if ((bfd_section_flags (p.the_bfd_section) & SEC_READONLY) == 0) continue; @@ -858,7 +858,7 @@ section_table_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf, gdb_assert (len != 0); - for (const target_section &p : sections.sections) + for (const target_section &p : sections) { struct bfd_section *asect = p.the_bfd_section; bfd *abfd = asect->owner; @@ -918,7 +918,7 @@ section_table_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf, return TARGET_XFER_EOF; /* We can't help. */ } -struct target_section_table * +target_section_table * exec_target::get_section_table () { return current_target_sections; @@ -930,7 +930,7 @@ exec_target::xfer_partial (enum target_object object, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) { - struct target_section_table *table = get_section_table (); + target_section_table *table = get_section_table (); if (object == TARGET_OBJECT_MEMORY) return section_table_xfer_memory_partial (readbuf, writebuf, @@ -942,7 +942,7 @@ exec_target::xfer_partial (enum target_object object, void -print_section_info (struct target_section_table *t, bfd *abfd) +print_section_info (target_section_table *t, bfd *abfd) { struct gdbarch *gdbarch = gdbarch_from_bfd (abfd); /* FIXME: 16 is not wide enough when gdbarch_addr_bit > 64. */ @@ -961,7 +961,7 @@ print_section_info (struct target_section_table *t, bfd *abfd) bfd_vma entry_point; bool found = false; - for (const target_section &p : t->sections) + for (const target_section &p : *t) { struct bfd_section *psect = p.the_bfd_section; @@ -989,7 +989,7 @@ print_section_info (struct target_section_table *t, bfd *abfd) printf_filtered (_("\tEntry point: %s\n"), paddress (gdbarch, entry_point)); } - for (const target_section &p : t->sections) + for (const target_section &p : *t) { struct bfd_section *psect = p.the_bfd_section; bfd *pbfd = psect->owner; @@ -1032,7 +1032,6 @@ set_section_command (const char *args, int from_tty) unsigned long secaddr; char secprint[100]; long offset; - struct target_section_table *table; if (args == 0) error (_("Must specify section name and its virtual address")); @@ -1044,8 +1043,7 @@ set_section_command (const char *args, int from_tty) /* Parse out new virtual address. */ secaddr = parse_and_eval_address (args); - table = current_target_sections; - for (target_section &p : table->sections) + for (target_section &p : *current_target_sections) { if (!strncmp (secname, bfd_section_name (p.the_bfd_section), seclen) && bfd_section_name (p.the_bfd_section)[seclen] == '\0') @@ -1071,10 +1069,7 @@ set_section_command (const char *args, int from_tty) void exec_set_section_address (const char *filename, int index, CORE_ADDR address) { - struct target_section_table *table; - - table = current_target_sections; - for (target_section &p : table->sections) + for (target_section &p : *current_target_sections) { if (filename_cmp (filename, bfd_get_filename (p.the_bfd_section->owner)) == 0 @@ -1091,7 +1086,7 @@ exec_target::has_memory () { /* We can provide memory if we have any file/target sections to read from. */ - return !current_target_sections->sections.empty (); + return !current_target_sections->empty (); } char * diff --git a/gdb/exec.h b/gdb/exec.h index f28a033428d..24489654ddc 100644 --- a/gdb/exec.h +++ b/gdb/exec.h @@ -115,7 +115,7 @@ extern void add_target_sections_of_objfile (struct objfile *objfile); special cased --- it's filename is omitted; if it is the executable file, its entry point is printed. */ -extern void print_section_info (struct target_section_table *table, +extern void print_section_info (target_section_table *table, bfd *abfd); extern void exec_close (void); diff --git a/gdb/progspace.h b/gdb/progspace.h index 099b4dc0b3a..6a0e9036399 100644 --- a/gdb/progspace.h +++ b/gdb/progspace.h @@ -325,7 +325,7 @@ struct program_space /* The set of target sections matching the sections mapped into this program space. Managed by both exec_ops and solib.c. */ - struct target_section_table target_sections {}; + target_section_table target_sections; /* List of shared objects mapped into this space. Managed by solib.c. */ diff --git a/gdb/record-full.c b/gdb/record-full.c index 40740f216ce..b5447e5a9a6 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -2138,7 +2138,7 @@ record_full_core_target::xfer_partial (enum target_object object, { if (record_full_gdb_operation_disable || !writebuf) { - for (target_section &p : record_full_core_sections.sections) + for (target_section &p : record_full_core_sections) { if (offset >= p.addr) { diff --git a/gdb/remote.c b/gdb/remote.c index c9c5ed03ea2..29c7ee64614 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -8889,7 +8889,6 @@ remote_target::remote_xfer_live_readonly_partial (gdb_byte *readbuf, ULONGEST *xfered_len) { struct target_section *secp; - struct target_section_table *table; secp = target_section_by_addr (this, memaddr); if (secp != NULL @@ -8897,9 +8896,8 @@ remote_target::remote_xfer_live_readonly_partial (gdb_byte *readbuf, { ULONGEST memend = memaddr + len; - table = target_get_section_table (this); - - for (target_section &p : table->sections) + target_section_table *table = target_get_section_table (this); + for (target_section &p : *table) { if (memaddr >= p.addr) { diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c index 59089216314..57c7ab18430 100644 --- a/gdb/solib-dsbt.c +++ b/gdb/solib-dsbt.c @@ -424,7 +424,7 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr) return 0; bool found = false; - for (target_section &target_section : current_target_sections->sections) + for (target_section &target_section : *current_target_sections) if (sect == target_section.the_bfd_section) { dyn_addr = target_section.addr; diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 9bb728ae9b9..a780f8d3467 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -608,7 +608,7 @@ scan_dyntag (const int desired_dyntag, bfd *abfd, CORE_ADDR *ptr, return 0; bool found = false; - for (target_section &target_section : current_target_sections->sections) + for (target_section &target_section : *current_target_sections) if (sect == target_section.the_bfd_section) { dyn_addr = target_section.addr; diff --git a/gdb/solib.c b/gdb/solib.c index bd6a27d8983..b4864429e9a 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -556,7 +556,7 @@ solib_map_sections (struct so_list *so) so->sections = new target_section_table; *so->sections = build_section_table (so->abfd); - for (target_section &p : so->sections->sections) + for (target_section &p : *so->sections) { /* Relocate the section binding addresses as recorded in the shared object's file by the base address to which the object was actually @@ -1113,7 +1113,7 @@ bool solib_contains_address_p (const struct so_list *const solib, CORE_ADDR address) { - for (target_section &p : solib->sections->sections) + for (target_section &p : *solib->sections) if (p.addr <= address && address < p.endaddr) return true; diff --git a/gdb/symfile.c b/gdb/symfile.c index f4acec50cca..3332e7f69ff 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -216,13 +216,13 @@ build_section_addr_info_from_section_table (const target_section_table &table) { section_addr_info sap; - for (const target_section &stp : table.sections) + for (const target_section &stp : table) { struct bfd_section *asect = stp.the_bfd_section; bfd *abfd = asect->owner; if (bfd_section_flags (asect) & (SEC_ALLOC | SEC_LOAD) - && sap.size () < table.sections.size ()) + && sap.size () < table.size ()) sap.emplace_back (stp.addr, bfd_section_name (asect), gdb_bfd_section_index (abfd, asect)); diff --git a/gdb/target-debug.h b/gdb/target-debug.h index 1b2feb2c7fb..65a14c41787 100644 --- a/gdb/target-debug.h +++ b/gdb/target-debug.h @@ -106,7 +106,7 @@ target_debug_do_print (host_address_to_string (X)) #define target_debug_print_struct_ui_file_p(X) \ target_debug_do_print (host_address_to_string (X)) -#define target_debug_print_struct_target_section_table_p(X) \ +#define target_debug_print_target_section_table_p(X) \ target_debug_do_print (host_address_to_string (X)) #define target_debug_print_async_callback_ftype_p(X) \ target_debug_do_print (host_address_to_string (X)) diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index c0968e2040e..e9c349fb7ba 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -77,7 +77,7 @@ struct dummy_target : public target_ops void rcmd (const char *arg0, struct ui_file *arg1) override; char *pid_to_exec_file (int arg0) override; void log_command (const char *arg0) override; - struct target_section_table *get_section_table () override; + target_section_table *get_section_table () override; thread_control_capabilities get_thread_control_capabilities () override; bool attach_no_wait () override; bool can_async_p () override; @@ -248,7 +248,7 @@ struct debug_target : public target_ops void rcmd (const char *arg0, struct ui_file *arg1) override; char *pid_to_exec_file (int arg0) override; void log_command (const char *arg0) override; - struct target_section_table *get_section_table () override; + target_section_table *get_section_table () override; thread_control_capabilities get_thread_control_capabilities () override; bool attach_no_wait () override; bool can_async_p () override; @@ -2021,27 +2021,27 @@ debug_target::log_command (const char *arg0) fputs_unfiltered (")\n", gdb_stdlog); } -struct target_section_table * +target_section_table * target_ops::get_section_table () { return this->beneath ()->get_section_table (); } -struct target_section_table * +target_section_table * dummy_target::get_section_table () { return NULL; } -struct target_section_table * +target_section_table * debug_target::get_section_table () { - struct target_section_table * result; + target_section_table * result; fprintf_unfiltered (gdb_stdlog, "-> %s->get_section_table (...)\n", this->beneath ()->shortname ()); result = this->beneath ()->get_section_table (); fprintf_unfiltered (gdb_stdlog, "<- %s->get_section_table (", this->beneath ()->shortname ()); fputs_unfiltered (") = ", gdb_stdlog); - target_debug_print_struct_target_section_table_p (result); + target_debug_print_target_section_table_p (result); fputs_unfiltered ("\n", gdb_stdlog); return result; } diff --git a/gdb/target-section.h b/gdb/target-section.h index 8c81f3d79ba..fc4c800158d 100644 --- a/gdb/target-section.h +++ b/gdb/target-section.h @@ -41,9 +41,6 @@ struct target_section /* Holds an array of target sections. */ -struct target_section_table -{ - std::vector sections; -}; +using target_section_table = std::vector; #endif /* GDB_TARGET_SECTION_H */ diff --git a/gdb/target.c b/gdb/target.c index f828d3d6cc3..e3b561649ed 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -811,7 +811,7 @@ target_read_string (CORE_ADDR memaddr, int len, int *bytes_read) return gdb::unique_xmalloc_ptr ((char *) buffer.release ()); } -struct target_section_table * +target_section_table * target_get_section_table (struct target_ops *target) { return target->get_section_table (); @@ -822,12 +822,12 @@ target_get_section_table (struct target_ops *target) struct target_section * target_section_by_addr (struct target_ops *target, CORE_ADDR addr) { - struct target_section_table *table = target_get_section_table (target); + target_section_table *table = target_get_section_table (target); if (table == NULL) return NULL; - for (target_section &secp : table->sections) + for (target_section &secp : *table) { if (addr >= secp.addr && addr < secp.endaddr) return &secp; @@ -964,8 +964,7 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object, if (pc_in_unmapped_range (memaddr, section)) { - struct target_section_table *table - = target_get_section_table (ops); + target_section_table *table = target_get_section_table (ops); const char *section_name = section->the_bfd_section->name; memaddr = overlay_mapped_address (memaddr, section); @@ -985,13 +984,12 @@ memory_xfer_partial_1 (struct target_ops *ops, enum target_object object, if (readbuf != NULL && trust_readonly) { struct target_section *secp; - struct target_section_table *table; secp = target_section_by_addr (ops, memaddr); if (secp != NULL && (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY)) { - table = target_get_section_table (ops); + target_section_table *table = target_get_section_table (ops); return section_table_xfer_memory_partial (readbuf, writebuf, memaddr, len, xfered_len, *table); diff --git a/gdb/target.h b/gdb/target.h index 369394aa929..5eca0e27ef3 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -29,7 +29,6 @@ struct target_ops; struct bp_location; struct bp_target_info; struct regcache; -struct target_section_table; struct trace_state_variable; struct trace_status; struct uploaded_tsv; @@ -681,7 +680,7 @@ struct target_ops TARGET_DEFAULT_RETURN (NULL); virtual void log_command (const char *) TARGET_DEFAULT_IGNORE (); - virtual struct target_section_table *get_section_table () + virtual target_section_table *get_section_table () TARGET_DEFAULT_RETURN (NULL); /* Provide default values for all "must have" methods. */ @@ -2421,7 +2420,7 @@ struct target_section *target_section_by_addr (struct target_ops *target, /* Return the target section table this target (or the targets beneath) currently manipulate. */ -extern struct target_section_table *target_get_section_table +extern target_section_table *target_get_section_table (struct target_ops *target); /* From mem-break.c */ -- 2.17.2