Use std::vector for traceframe_info::memory

Straightforward change from a VEC to std::vector.  This allows making
the destruction of a traceframe_info trivial.

I added a constructor with parameters to mem_range to be able to
emplace_back directly with the values.  It is necessary to leave a
default constructor there because mem_range is still used in a VEC.

gdb/ChangeLog:

	* memrange.h (struct mem_range): Add constructors.
	* tracepoint.h (struct traceframe_info) <memory>: Change type to
	std::vector<mem_range>.
	* tracepoint.c (free_traceframe_info): Don't manually free
	vector.
	(traceframe_info_start_memory): Adjust to vector change.
	(traceframe_available_memory): Likewise.
	* tracefile-tfile.c (build_traceframe_info): Likewise.
	* ctf.c (ctf_traceframe_info): Likewise.
This commit is contained in:
Simon Marchi
2017-10-14 08:43:54 -04:00
committed by Simon Marchi
parent d0d292a274
commit 4cdd21a8d3
6 changed files with 30 additions and 26 deletions

View File

@@ -1663,14 +1663,14 @@ ctf_traceframe_info (struct target_ops *self)
= bt_ctf_get_top_level_scope (event,
BT_EVENT_FIELDS);
const struct bt_definition *def;
struct mem_range *r;
r = VEC_safe_push (mem_range_s, info->memory, NULL);
def = bt_ctf_get_field (event, scope, "address");
r->start = bt_ctf_get_uint64 (def);
CORE_ADDR start = bt_ctf_get_uint64 (def);
def = bt_ctf_get_field (event, scope, "length");
r->length = (uint16_t) bt_ctf_get_uint64 (def);
int length = (uint16_t) bt_ctf_get_uint64 (def);
info->memory.emplace_back (start, length);
}
else if (strcmp (name, "tsv") == 0)
{