From 518a3a2106e4e8172a1c7628b79b63635857fec3 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Fri, 30 Nov 2018 08:43:50 +0000 Subject: [PATCH] [libbacktrace] Factor out backtrace_vector_free Factor out new function backtrace_vector_free. Bootstrapped and reg-tested on x86_64. 2018-11-30 Tom de Vries * internal.h (backtrace_vector_free): New static inline fuction, factored out of ... * dwarf.c (read_line_info): ... here. From-SVN: r266658 --- libbacktrace/ChangeLog | 6 ++++++ libbacktrace/dwarf.c | 4 +--- libbacktrace/internal.h | 12 ++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog index 8894446a75b..9ea10f7e0d6 100644 --- a/libbacktrace/ChangeLog +++ b/libbacktrace/ChangeLog @@ -1,3 +1,9 @@ +2018-11-30 Tom de Vries + + * internal.h (backtrace_vector_free): New static inline fuction, + factored out of ... + * dwarf.c (read_line_info): ... here. + 2018-11-28 Tom de Vries * dwarf.c (read_abbrevs): Fix handling of abbrevs->abbrevs allocation diff --git a/libbacktrace/dwarf.c b/libbacktrace/dwarf.c index 34543747c8f..48ef3638a5f 100644 --- a/libbacktrace/dwarf.c +++ b/libbacktrace/dwarf.c @@ -2057,9 +2057,7 @@ read_line_info (struct backtrace_state *state, struct dwarf_data *ddata, return 1; fail: - vec.vec.alc += vec.vec.size; - vec.vec.size = 0; - backtrace_vector_release (state, &vec.vec, error_callback, data); + backtrace_vector_free (state, &vec.vec, error_callback, data); free_line_header (state, hdr, error_callback, data); *lines = (struct line *) (uintptr_t) -1; *lines_count = 0; diff --git a/libbacktrace/internal.h b/libbacktrace/internal.h index bff8ed470e4..548f9d70905 100644 --- a/libbacktrace/internal.h +++ b/libbacktrace/internal.h @@ -257,6 +257,18 @@ extern int backtrace_vector_release (struct backtrace_state *state, backtrace_error_callback error_callback, void *data); +/* Free the space managed by VEC. This will reset VEC. */ + +static inline void +backtrace_vector_free (struct backtrace_state *state, + struct backtrace_vector *vec, + backtrace_error_callback error_callback, void *data) +{ + vec->alc += vec->size; + vec->size = 0; + backtrace_vector_release (state, vec, error_callback, data); +} + /* Read initial debug data from a descriptor, and set the fileline_data, syminfo_fn, and syminfo_data fields of STATE. Return the fileln_fn field in *FILELN_FN--this is done this way so -- 2.30.2