diff options
author | Jim Blandy <jimb@codesourcery.com> | 2004-09-08 21:58:19 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2004-09-08 21:58:19 +0000 |
commit | 7b90c3f96efc132cac934b3f2b43da899d46eae0 (patch) | |
tree | c956505ed511fa6e4ec307ae552a7492570a7351 /gdb/symfile.h | |
parent | 10b016c223f165a06dbd20e46307c9a0bfbf0ee2 (diff) | |
download | gdb-7b90c3f96efc132cac934b3f2b43da899d46eae0.zip gdb-7b90c3f96efc132cac934b3f2b43da899d46eae0.tar.gz gdb-7b90c3f96efc132cac934b3f2b43da899d46eae0.tar.bz2 |
Fix bug reported and analyzed by Olivier Crete:
* symfile.c (copy_section_addr_info): New function.
(symbol_file_add_with_addrs_or_offsets): Use it to save the
original set of address arguments, instead of handwritten code
that uses one length to allocate and a different length to
initialize. Use make_cleanup_free_section_addr_info.
* symfile.h (copy_section_addr_info): New declaration.
* utils.c: #include "symfile.h".
(do_free_section_addr_info, make_cleanup_free_section_addr_info):
New functions.
* defs.h (make_cleanup_free_section_addr_info): New declaration.
* Makefile.in (utils.o): Update dependencies.
Diffstat (limited to 'gdb/symfile.h')
-rw-r--r-- | gdb/symfile.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/symfile.h b/gdb/symfile.h index b76d3ba..0fa9c46 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -198,6 +198,11 @@ extern struct objfile *symbol_file_add_from_bfd (bfd *, int, extern struct section_addr_info *alloc_section_addr_info (size_t num_sections); +/* Return a freshly allocated copy of ADDRS. The section names, if + any, are also freshly allocated copies of those in ADDRS. */ +extern struct section_addr_info *(copy_section_addr_info + (struct section_addr_info *addrs)); + /* Build (allocate and populate) a section_addr_info struct from an existing section table. */ |