Get rid of VEC(mem_range_s)

This patch replaces the last usages of VEC(mem_range_s) with
std::vector<mem_range>.  This allows getting rid of a few cleanups and
of the DEF_VEC_O(mem_range_s).

I added a test for normalize_mem_ranges to make sure I didn't break
anything there.

Regtested on the buildbot.

gdb/ChangeLog:

	* memrange.h (struct mem_range): Define operator< and operator==.
	(mem_range_s): Remove.
	(DEF_VEC_O (mem_range_s)): Remove.
	(normalize_mem_ranges): Change parameter type to std::vector.
	* memrange.c (compare_mem_ranges): Remove.
	(normalize_mem_ranges): Change parameter type to std::vector,
	adjust to vector change.
	* exec.c (section_table_available_memory): Return vector, remove
	parameter.
	(section_table_read_available_memory): Adjust to std::vector
	change.
	* remote.c (remote_read_bytes): Adjust to std::vector
	change.
	* tracepoint.h (traceframe_available_memory): Change parameter
	type to std::vector.
	* tracepoint.c (traceframe_available_memory): Change parameter
	type to std::vector, adjust.
	* gdb/mi/mi-main.c (mi_cmd_trace_frame_collected): Adjust to
	std::vector change.
	* gdb/Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
	unittests/memrange-selftests.c.
	(SUBDIR_UNITTESTS_OBS): Add memrange-selftests.o.
	* gdb/unittests/memrange-selftests.c: New file.
This commit is contained in:
Simon Marchi 2017-10-16 10:14:53 -04:00
parent 63f0e930d4
commit a79b1bc6f6
10 changed files with 205 additions and 110 deletions

View file

@ -4077,20 +4077,19 @@ get_traceframe_info (void)
undefined. */
int
traceframe_available_memory (VEC(mem_range_s) **result,
traceframe_available_memory (std::vector<mem_range> *result,
CORE_ADDR memaddr, ULONGEST len)
{
struct traceframe_info *info = get_traceframe_info ();
if (info != NULL)
{
*result = NULL;
result->clear ();
for (mem_range &r : info->memory)
if (mem_ranges_overlap (r.start, r.length, memaddr, len))
{
ULONGEST lo1, hi1, lo2, hi2;
struct mem_range *nr;
lo1 = memaddr;
hi1 = memaddr + len;
@ -4098,13 +4097,13 @@ traceframe_available_memory (VEC(mem_range_s) **result,
lo2 = r.start;
hi2 = r.start + r.length;
nr = VEC_safe_push (mem_range_s, *result, NULL);
CORE_ADDR start = std::max (lo1, lo2);
int length = std::min (hi1, hi2) - start;
nr->start = std::max (lo1, lo2);
nr->length = std::min (hi1, hi2) - nr->start;
result->emplace_back (start, length);
}
normalize_mem_ranges (*result);
normalize_mem_ranges (result);
return 1;
}