diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2017-10-16 10:14:53 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2017-10-16 11:07:18 -0400 |
commit | a79b1bc6f690f3d146a3caddabd9f13a886c856a (patch) | |
tree | a80d8994788044e3c175bb974b2893352b065db5 /gdb/tracepoint.c | |
parent | 63f0e930d4667eb7dbc95c78f770cd58acd328ef (diff) | |
download | fsf-binutils-gdb-a79b1bc6f690f3d146a3caddabd9f13a886c856a.zip fsf-binutils-gdb-a79b1bc6f690f3d146a3caddabd9f13a886c856a.tar.gz fsf-binutils-gdb-a79b1bc6f690f3d146a3caddabd9f13a886c856a.tar.bz2 |
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.
Diffstat (limited to 'gdb/tracepoint.c')
-rw-r--r-- | gdb/tracepoint.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 9c07315..fdc3b38 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -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; } |