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

Replace a VEC with a std::vector in btrace.h, and update btrace.c to
match.  It is worth noting that this code appears to be currently
untested by the GDB testsuite.  I've tried to do a like for like
replacement when moving to std::vector, with minimal refactoring to
try and avoid introducing any bugs.

As the new vector is inside a union I've currently used a pointer to
vector, which makes the code slightly uglier than it might otherwise
be, but again, due to lack of testing I'm reluctant to start
refactoring the code in a big way.

gdb/ChangeLog:

	* btrace.c (btrace_maint_clear): Update to handle change from VEC
	to std::vector.
	(btrace_maint_decode_pt): Likewise, and move allocation of the
	vector outside of the loop.
	(btrace_maint_update_packets): Update to handle change from VEC to
	std::vector.
	(btrace_maint_print_packets): Likewise.
	(maint_info_btrace_cmd): Likewise.
	* btrace.h: Remove use of DEF_VEC_O.
	(typedef btrace_pt_packet_s): Delete.
	(struct btrace_maint_info) <packets>: Change fromm VEC to
	std::vector.
	* gdbsupport/btrace-common.h: Remove 'vec.h' include.
This commit is contained in:
Andrew Burgess 2019-09-19 13:17:59 -04:00
parent 46f29a9a26
commit 554ac434b0
4 changed files with 38 additions and 25 deletions

View file

@ -264,9 +264,6 @@ struct btrace_pt_packet
struct pt_packet packet;
};
/* Define functions operating on a vector of packets. */
typedef struct btrace_pt_packet btrace_pt_packet_s;
DEF_VEC_O (btrace_pt_packet_s);
#endif /* defined (HAVE_LIBIPT) */
/* Branch trace iteration state for "maintenance btrace packet-history". */
@ -300,7 +297,7 @@ struct btrace_maint_info
struct
{
/* A vector of decoded packets. */
VEC (btrace_pt_packet_s) *packets;
std::vector <btrace_pt_packet> *packets;
/* The packet history iterator.
We are iterating over the above PACKETS vector. */