aboutsummaryrefslogtreecommitdiff
path: root/libbacktrace/dwarf.c
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2013-12-05 18:32:02 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2013-12-05 18:32:02 +0000
commitbfd74f227df4eac35e4336f4a888907c33f0c041 (patch)
treea21a16be4ac9b12fe22e13697ded7ead64c31b02 /libbacktrace/dwarf.c
parente69dbe3721a150e221e05edde4985dd961edafd1 (diff)
downloadgcc-bfd74f227df4eac35e4336f4a888907c33f0c041.zip
gcc-bfd74f227df4eac35e4336f4a888907c33f0c041.tar.gz
gcc-bfd74f227df4eac35e4336f4a888907c33f0c041.tar.bz2
alloc.c (backtrace_vector_finish): Add error_callback and data parameters.
* alloc.c (backtrace_vector_finish): Add error_callback and data parameters. Call backtrace_vector_release. Return address base. * mmap.c (backtrace_vector_finish): Add error_callback and data parameters. Return address base. * dwarf.c (read_function_info): Get new address base from backtrace_vector_finish. * internal.h (backtrace_vector_finish): Update declaration. From-SVN: r205716
Diffstat (limited to 'libbacktrace/dwarf.c')
-rw-r--r--libbacktrace/dwarf.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libbacktrace/dwarf.c b/libbacktrace/dwarf.c
index f9c3b37..fa9b990 100644
--- a/libbacktrace/dwarf.c
+++ b/libbacktrace/dwarf.c
@@ -2535,19 +2535,23 @@ read_function_info (struct backtrace_state *state, struct dwarf_data *ddata,
if (pfvec->count == 0)
return;
- addrs = (struct function_addrs *) pfvec->vec.base;
addrs_count = pfvec->count;
if (fvec == NULL)
{
if (!backtrace_vector_release (state, &lvec.vec, error_callback, data))
return;
+ addrs = (struct function_addrs *) pfvec->vec.base;
}
else
{
/* Finish this list of addresses, but leave the remaining space in
the vector available for the next function unit. */
- backtrace_vector_finish (state, &fvec->vec);
+ addrs = ((struct function_addrs *)
+ backtrace_vector_finish (state, &fvec->vec,
+ error_callback, data));
+ if (addrs == NULL)
+ return;
fvec->count = 0;
}