[libbacktrace] Factor out backtrace_vector_free
authorTom de Vries <tdevries@suse.de>
Fri, 30 Nov 2018 08:43:50 +0000 (08:43 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Fri, 30 Nov 2018 08:43:50 +0000 (08:43 +0000)
Factor out new function backtrace_vector_free.

Bootstrapped and reg-tested on x86_64.

2018-11-30  Tom de Vries  <tdevries@suse.de>

* internal.h (backtrace_vector_free): New static inline fuction,
factored out of ...
* dwarf.c (read_line_info): ... here.

From-SVN: r266658

libbacktrace/ChangeLog
libbacktrace/dwarf.c
libbacktrace/internal.h

index 8894446a75b953d85421685ba338080f47ddbb37..9ea10f7e0d687b1d1e4de5cabb7e410bef41dba9 100644 (file)
@@ -1,3 +1,9 @@
+2018-11-30  Tom de Vries  <tdevries@suse.de>
+
+       * internal.h (backtrace_vector_free): New static inline fuction,
+       factored out of ...
+       * dwarf.c (read_line_info): ... here.
+
 2018-11-28  Tom de Vries  <tdevries@suse.de>
 
        * dwarf.c (read_abbrevs): Fix handling of abbrevs->abbrevs allocation
index 34543747c8fa7cacdb3c5e035f34b5fa7be25106..48ef3638a5f53f3aaeffe349654daf21e05e4405 100644 (file)
@@ -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;
index bff8ed470e4f054b7a63982c2b5b53932a4fb4a2..548f9d7090528269d309947a7de57d445c06c4c5 100644 (file)
@@ -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