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:
parent
63f0e930d4
commit
a79b1bc6f6
10 changed files with 205 additions and 110 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue