From: vries Date: Fri, 30 Nov 2018 08:43:50 +0000 (+0000) Subject: [libbacktrace] Factor out backtrace_vector_free X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=579f637cd77e08b89a87a9b7f78384089160fed1;p=thirdparty%2Fgcc.git [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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266658 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog index 8894446a75b9..9ea10f7e0d68 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 34543747c8fa..48ef3638a5f5 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 bff8ed470e4f..548f9d709052 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