diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-05 18:32:02 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-05 18:32:02 +0000 |
commit | 583d5f6b1f6f0b63439649c6a0bc3dd8cdeb67d4 (patch) | |
tree | a21a16be4ac9b12fe22e13697ded7ead64c31b02 /libbacktrace/dwarf.c | |
parent | 178e1d9947431e09eee09a3ef8a0f1fe545313ef (diff) | |
download | gcc-583d5f6b1f6f0b63439649c6a0bc3dd8cdeb67d4.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205716 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libbacktrace/dwarf.c')
-rw-r--r-- | libbacktrace/dwarf.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libbacktrace/dwarf.c b/libbacktrace/dwarf.c index f9c3b3723e7..fa9b9904322 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; } |