[PATCHv5,3/3] gdb: Remove a use of VEC from dwarf2read.{c,h}

Message ID 8686aa422a9296daf14b844071a05fd443aea850.1569929786.git.andrew.burgess@embecosm.com
State New
Headers show
Series
  • Remove some uses of VEC
Related show

Commit Message

Andrew Burgess Oct. 1, 2019, 11:42 a.m.
Removes a use of VEC from dwarf2read.{c,h} and replaces it with
std::vector.  As far as possible this is a like for like replacement
with minimal refactoring.

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* dwarf2read.c (struct type_unit_group) <tus>: Convert to
	std::vector.
	(build_type_psymtabs_reader): Update for std::vector.
	(build_type_psymtab_dependencies): Likewise.
	* dwarf2read.h: Remove use of DEF_VEC_P.
	(typedef sig_type_ptr): Delete.
---
 gdb/ChangeLog    |  9 +++++++++
 gdb/dwarf2read.c | 17 +++++++++--------
 gdb/dwarf2read.h |  3 ---
 3 files changed, 18 insertions(+), 11 deletions(-)

-- 
2.14.5

Comments

Pedro Alves Oct. 2, 2019, 3:50 p.m. | #1
Hi,

On 10/1/19 12:42 PM, Andrew Burgess wrote:
> -  VEC (sig_type_ptr) *tus;

> +  std::vector <signatured_type *> *tus;


I skimmed this quickly and noticed that throughout the series
you're putting a space in "vector <", which is not the prevailing
style.

(I've really not looked at the patches in any detail beyond that.)

Thanks,
Pedro Alves
Andrew Burgess Oct. 2, 2019, 10:21 p.m. | #2
* Pedro Alves <palves@redhat.com> [2019-10-02 16:50:57 +0100]:

> Hi,

> 

> On 10/1/19 12:42 PM, Andrew Burgess wrote:

> > -  VEC (sig_type_ptr) *tus;

> > +  std::vector <signatured_type *> *tus;

> 

> I skimmed this quickly and noticed that throughout the series

> you're putting a space in "vector <", which is not the prevailing

> style.

> 


Sorry for this.  I propose the below patch to address this mistake.

Thanks,
Andrew

--

From d686b9d504c338ac39b4ddbd7e0765b591e8bf04 Mon Sep 17 00:00:00 2001
From: Andrew Burgess <andrew.burgess@embecosm.com>

Date: Wed, 2 Oct 2019 22:01:46 +0100
Subject: [PATCH] gdb: Remove whitespace in 'std::vector <...>'

In the following 3 commits:

    commit df07e2c772dab40d268dc44c78bb087c4b75b3c6
    Date:   Wed Sep 25 16:10:50 2019 +0100

        gdb: Remove a use of VEC from dwarf2read.{c,h}

    commit 554ac434b02465f1fc925b0ae3393fb841e0d59c
    Date:   Thu Sep 19 13:17:59 2019 -0400

        gdb: Change a VEC to std::vector in btrace.{c,h}

    commit 46f29a9a260da1a03176682aff63bad03d8f2e8b
    Date:   Mon Sep 16 09:12:27 2019 -0400

        gdb: Remove a VEC from gdbsupport/btrace-common.h

I incorrectly wrote 'std::vector <...>' instead of 'std::vector<...>',
this commit fixes this mistake.  There should be no user visible
changes after this commit.

gdb/ChangeLog:

	* btrace.c (btrace_add_pc): Remove whitespace before the template
	parameter in 'std::vector <...>'.
	(parse_xml_btrace_block): Likewise.
	(btrace_maint_decode_pt): Likewise.
	(btrace_maint_update_packets): Likewise.
	(btrace_maint_print_packets): Likewise.
	* btrace.h (struct btrace_maint_info): Likewise.
	* dwarf2read.c (struct type_unit_group): Likewise.
	(build_type_psymtabs_reader): Likewise.
	* gdbsupport/btrace-common.c (btrace_data_append): Likewise.
	* gdbsupport/btrace-common.h (struct btrace_data_bts): Likewise.
	* nat/linux-btrace.c (perf_event_read_bts): Likewise.
---
 gdb/ChangeLog                  | 15 +++++++++++++++
 gdb/btrace.c                   | 12 ++++++------
 gdb/btrace.h                   |  2 +-
 gdb/dwarf2read.c               |  4 ++--
 gdb/gdbsupport/btrace-common.c |  2 +-
 gdb/gdbsupport/btrace-common.h |  2 +-
 gdb/nat/linux-btrace.c         |  4 ++--
 7 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/gdb/btrace.c b/gdb/btrace.c
index 8bed31cdac0..e2443a2d234 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -1579,7 +1579,7 @@ btrace_add_pc (struct thread_info *tp)
   pc = regcache_read_pc (regcache);
 
   btrace.format = BTRACE_FORMAT_BTS;
-  btrace.variant.bts.blocks = new std::vector <btrace_block>;
+  btrace.variant.bts.blocks = new std::vector<btrace_block>;
 
   btrace.variant.bts.blocks->emplace_back (pc, pc);
 
@@ -2036,7 +2036,7 @@ parse_xml_btrace_block (struct gdb_xml_parser *parser,
 
     case BTRACE_FORMAT_NONE:
       btrace->format = BTRACE_FORMAT_BTS;
-      btrace->variant.bts.blocks = new std::vector <btrace_block>;
+      btrace->variant.bts.blocks = new std::vector<btrace_block>;
       break;
 
     default:
@@ -2963,7 +2963,7 @@ btrace_maint_decode_pt (struct btrace_maint_info *maint,
   int errcode;
 
   if (maint->variant.pt.packets == NULL)
-    maint->variant.pt.packets = new std::vector <btrace_pt_packet>;
+    maint->variant.pt.packets = new std::vector<btrace_pt_packet>;
 
   for (;;)
     {
@@ -3095,7 +3095,7 @@ btrace_maint_update_packets (struct btrace_thread_info *btinfo,
 #if defined (HAVE_LIBIPT)
     case BTRACE_FORMAT_PT:
       if (btinfo->maint.variant.pt.packets == nullptr)
-	btinfo->maint.variant.pt.packets = new std::vector <btrace_pt_packet>;
+	btinfo->maint.variant.pt.packets = new std::vector<btrace_pt_packet>;
 
       if (btinfo->maint.variant.pt.packets->empty ())
 	btrace_maint_update_pt_packets (btinfo);
@@ -3123,7 +3123,7 @@ btrace_maint_print_packets (struct btrace_thread_info *btinfo,
 
     case BTRACE_FORMAT_BTS:
       {
-	const std::vector <btrace_block> &blocks
+	const std::vector<btrace_block> &blocks
 	  = *btinfo->data.variant.bts.blocks;
 	unsigned int blk;
 
@@ -3144,7 +3144,7 @@ btrace_maint_print_packets (struct btrace_thread_info *btinfo,
 #if defined (HAVE_LIBIPT)
     case BTRACE_FORMAT_PT:
       {
-	const std::vector <btrace_pt_packet> &packets
+	const std::vector<btrace_pt_packet> &packets
 	  = *btinfo->maint.variant.pt.packets;
 	unsigned int pkt;
 
diff --git a/gdb/btrace.h b/gdb/btrace.h
index 208c089fa7c..acde64a5122 100644
--- a/gdb/btrace.h
+++ b/gdb/btrace.h
@@ -297,7 +297,7 @@ struct btrace_maint_info
     struct
     {
       /* A vector of decoded packets.  */
-      std::vector <btrace_pt_packet> *packets;
+      std::vector<btrace_pt_packet> *packets;
 
       /* The packet history iterator.
 	 We are iterating over the above PACKETS vector.  */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index feac40ff95c..9d9dd6db709 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -620,7 +620,7 @@ struct type_unit_group
   /* The TUs that share this DW_AT_stmt_list entry.
      This is added to while parsing type units to build partial symtabs,
      and is deleted afterwards and not used again.  */
-  std::vector <signatured_type *> *tus;
+  std::vector<signatured_type *> *tus;
 
   /* The compunit symtab.
      Type units in a group needn't all be defined in the same source file,
@@ -8191,7 +8191,7 @@ build_type_psymtabs_reader (const struct die_reader_specs *reader,
   tu_group = get_type_unit_group (cu, attr);
 
   if (tu_group->tus == nullptr)
-    tu_group->tus = new std::vector <signatured_type *>;
+    tu_group->tus = new std::vector<signatured_type *>;
   tu_group->tus->push_back (sig_type);
 
   prepare_one_comp_unit (cu, type_unit_die, language_minimal);
diff --git a/gdb/gdbsupport/btrace-common.c b/gdb/gdbsupport/btrace-common.c
index d6d3ab50c9e..608506c34c9 100644
--- a/gdb/gdbsupport/btrace-common.c
+++ b/gdb/gdbsupport/btrace-common.c
@@ -133,7 +133,7 @@ btrace_data_append (struct btrace_data *dst,
 
 	case BTRACE_FORMAT_NONE:
 	  dst->format = BTRACE_FORMAT_BTS;
-	  dst->variant.bts.blocks = new std::vector <btrace_block>;
+	  dst->variant.bts.blocks = new std::vector<btrace_block>;
 
 	  /* Fall-through.  */
 	case BTRACE_FORMAT_BTS:
diff --git a/gdb/gdbsupport/btrace-common.h b/gdb/gdbsupport/btrace-common.h
index 166d7b18700..09a90485cdc 100644
--- a/gdb/gdbsupport/btrace-common.h
+++ b/gdb/gdbsupport/btrace-common.h
@@ -141,7 +141,7 @@ struct btrace_data_bts
   /* Branch trace is represented as a vector of branch trace blocks starting
      with the most recent block.  This needs to be a pointer as we place
      btrace_data_bts into a union.  */
-  std::vector <btrace_block> *blocks;
+  std::vector<btrace_block> *blocks;
 };
 
 /* Configuration information to go with the trace data.  */
diff --git a/gdb/nat/linux-btrace.c b/gdb/nat/linux-btrace.c
index a63973d569d..850fa8df584 100644
--- a/gdb/nat/linux-btrace.c
+++ b/gdb/nat/linux-btrace.c
@@ -271,11 +271,11 @@ perf_event_sample_ok (const struct perf_event_sample *sample)
    In case the buffer overflows during sampling, one sample may have its lower
    part at the end and its upper part at the beginning of the buffer.  */
 
-static std::vector <btrace_block> *
+static std::vector<btrace_block> *
 perf_event_read_bts (struct btrace_target_info* tinfo, const uint8_t *begin,
 		     const uint8_t *end, const uint8_t *start, size_t size)
 {
-  std::vector <btrace_block> *btrace = new std::vector <btrace_block>;
+  std::vector<btrace_block> *btrace = new std::vector<btrace_block>;
   struct perf_event_sample sample;
   size_t read = 0;
   struct btrace_block block = { 0, 0 };
-- 
2.14.5
Pedro Alves Oct. 3, 2019, 8:06 a.m. | #3
On 10/2/19 11:21 PM, Andrew Burgess wrote:
> * Pedro Alves <palves@redhat.com> [2019-10-02 16:50:57 +0100]:

> 

>> Hi,

>>

>> On 10/1/19 12:42 PM, Andrew Burgess wrote:

>>> -  VEC (sig_type_ptr) *tus;

>>> +  std::vector <signatured_type *> *tus;

>>

>> I skimmed this quickly and noticed that throughout the series

>> you're putting a space in "vector <", which is not the prevailing

>> style.

>>

> 

> Sorry for this.  I propose the below patch to address this mistake.


Far from a big deal.  :-)  Thanks!  Looks pretty obvious to me.

Pedro Alves

Patch

diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 53e7393a7c9..30658b2d4f4 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -620,7 +620,7 @@  struct type_unit_group
   /* The TUs that share this DW_AT_stmt_list entry.
      This is added to while parsing type units to build partial symtabs,
      and is deleted afterwards and not used again.  */
-  VEC (sig_type_ptr) *tus;
+  std::vector <signatured_type *> *tus;
 
   /* The compunit symtab.
      Type units in a group needn't all be defined in the same source file,
@@ -8184,7 +8184,9 @@  build_type_psymtabs_reader (const struct die_reader_specs *reader,
   attr = dwarf2_attr_no_follow (type_unit_die, DW_AT_stmt_list);
   tu_group = get_type_unit_group (cu, attr);
 
-  VEC_safe_push (sig_type_ptr, tu_group->tus, sig_type);
+  if (tu_group->tus == nullptr)
+    tu_group->tus = new std::vector <signatured_type *>;
+  tu_group->tus->push_back (sig_type);
 
   prepare_one_comp_unit (cu, type_unit_die, language_minimal);
   pst = create_partial_symtab (per_cu, "");
@@ -8341,8 +8343,7 @@  build_type_psymtab_dependencies (void **slot, void *info)
   struct type_unit_group *tu_group = (struct type_unit_group *) *slot;
   struct dwarf2_per_cu_data *per_cu = &tu_group->per_cu;
   struct partial_symtab *pst = per_cu->v.psymtab;
-  int len = VEC_length (sig_type_ptr, tu_group->tus);
-  struct signatured_type *iter;
+  int len = (tu_group->tus == nullptr) ? 0 : tu_group->tus->size ();
   int i;
 
   gdb_assert (len > 0);
@@ -8350,16 +8351,16 @@  build_type_psymtab_dependencies (void **slot, void *info)
 
   pst->number_of_dependencies = len;
   pst->dependencies = objfile->partial_symtabs->allocate_dependencies (len);
-  for (i = 0;
-       VEC_iterate (sig_type_ptr, tu_group->tus, i, iter);
-       ++i)
+  for (i = 0; i < len; ++i)
     {
+      struct signatured_type *iter = tu_group->tus->at (i);
       gdb_assert (iter->per_cu.is_debug_types);
       pst->dependencies[i] = iter->per_cu.v.psymtab;
       iter->type_unit_group = tu_group;
     }
 
-  VEC_free (sig_type_ptr, tu_group->tus);
+  delete tu_group->tus;
+  tu_group->tus = nullptr;
 
   return 1;
 }
diff --git a/gdb/dwarf2read.h b/gdb/dwarf2read.h
index d5a02990d41..aee8742a79c 100644
--- a/gdb/dwarf2read.h
+++ b/gdb/dwarf2read.h
@@ -401,9 +401,6 @@  struct signatured_type
   struct dwo_unit *dwo_unit;
 };
 
-typedef struct signatured_type *sig_type_ptr;
-DEF_VEC_P (sig_type_ptr);
-
 ULONGEST read_unsigned_leb128 (bfd *, const gdb_byte *, unsigned int *);
 
 /* This represents a '.dwz' file.  */