From 2b51eddc5503ea84d48c5b3b3ec3388eba440451 Mon Sep 17 00:00:00 2001 From: Tim Wiederhake Date: Tue, 30 May 2017 12:47:37 +0200 Subject: [PATCH] btrace: Use std::vector in struct btrace_thread_information. --- gdb/ChangeLog | 7 +++++++ gdb/btrace.c | 17 ++++++++--------- gdb/btrace.h | 7 +++---- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d0a9608c673..c4f353b3944 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2017-05-30 Tim Wiederhake + + * btrace.c (btrace_fetch, btrace_clear, btrace_find_insn_by_number): + Replace VEC_* with std::vector functions. + * btrace.h: Add include: vector. Remove typedef for DEF_VEC_P. + (struct btrace_thread_info): Change type to std::vector. + 2017-05-30 Simon Marchi * NEWS (Changes in GDB 8.0): Remove extra empty line. Move diff --git a/gdb/btrace.c b/gdb/btrace.c index 20c977a2815..46a4d8dd6ff 100644 --- a/gdb/btrace.c +++ b/gdb/btrace.c @@ -1857,12 +1857,12 @@ btrace_fetch (struct thread_info *tp) btrace_data_append (&btinfo->data, &btrace); btrace_maint_clear (btinfo); - VEC_truncate (btrace_fun_p, btinfo->functions, 0); + btinfo->functions.clear (); btrace_clear_history (btinfo); btrace_compute_ftrace (tp, &btrace); for (bfun = btinfo->begin; bfun != NULL; bfun = bfun->flow.next) - VEC_safe_push (btrace_fun_p, btinfo->functions, bfun); + btinfo->functions.push_back (bfun); } do_cleanups (cleanup); @@ -1884,8 +1884,7 @@ btrace_clear (struct thread_info *tp) reinit_frame_cache (); btinfo = &tp->btrace; - - VEC_free (btrace_fun_p, btinfo->functions); + btinfo->functions.clear (); it = btinfo->begin; while (it != NULL) @@ -2480,16 +2479,16 @@ btrace_find_insn_by_number (struct btrace_insn_iterator *it, const struct btrace_function *bfun; unsigned int upper, lower; - if (VEC_empty (btrace_fun_p, btinfo->functions)) + if (btinfo->functions.empty ()) return 0; lower = 0; - bfun = VEC_index (btrace_fun_p, btinfo->functions, lower); + bfun = btinfo->functions[lower]; if (number < bfun->insn_offset) return 0; - upper = VEC_length (btrace_fun_p, btinfo->functions) - 1; - bfun = VEC_index (btrace_fun_p, btinfo->functions, upper); + upper = btinfo->functions.size () - 1; + bfun = btinfo->functions[upper]; if (number >= bfun->insn_offset + ftrace_call_num_insn (bfun)) return 0; @@ -2498,7 +2497,7 @@ btrace_find_insn_by_number (struct btrace_insn_iterator *it, { const unsigned int average = lower + (upper - lower) / 2; - bfun = VEC_index (btrace_fun_p, btinfo->functions, average); + bfun = btinfo->functions[average]; if (number < bfun->insn_offset) { diff --git a/gdb/btrace.h b/gdb/btrace.h index 07ed10c6ad6..ab739ecab4d 100644 --- a/gdb/btrace.h +++ b/gdb/btrace.h @@ -34,6 +34,8 @@ # include #endif +#include + struct thread_info; struct btrace_function; @@ -187,9 +189,6 @@ struct btrace_function btrace_function_flags flags; }; -typedef struct btrace_function *btrace_fun_p; -DEF_VEC_P (btrace_fun_p); - /* A branch trace instruction iterator. */ struct btrace_insn_iterator { @@ -342,7 +341,7 @@ struct btrace_thread_info /* Vector of pointer to decoded function segments. These are in execution order with the first element == BEGIN and the last element == END. */ - VEC (btrace_fun_p) *functions; + std::vector functions; /* The function level offset. When added to each function's LEVEL, this normalizes the function levels such that the smallest level -- 2.30.2