diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-02-01 23:14:11 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-02-01 23:14:11 +0000 |
commit | ae5a43e0c91c4be8e22492ad4c1407ac7b2fcb18 (patch) | |
tree | 30185e9896a6c41894cda4928a6d9510ae2dbe29 /gdb/utils.c | |
parent | f37bc9f776c50893fd23557fb47768788f8b6f82 (diff) | |
download | gdb-ae5a43e0c91c4be8e22492ad4c1407ac7b2fcb18.zip gdb-ae5a43e0c91c4be8e22492ad4c1407ac7b2fcb18.tar.gz gdb-ae5a43e0c91c4be8e22492ad4c1407ac7b2fcb18.tar.bz2 |
gdb/
* Makefile.in (gdbtypes_h, gdbtypes.o, utils.o): Update.
* defs.h (hashtab_obstack_allocate, dummy_obstack_deallocate): Add
prototypes.
* dwarf2read.c (read_subroutine_type): Use TYPE_ZALLOC.
(hashtab_obstack_allocate, dummy_obstack_deallocate): Moved to...
* utils.c (hashtab_obstack_allocate, dummy_obstack_deallocate):
...here.
* gdbtypes.c: Include "hashtab.h".
(build_gdbtypes): Remove extra prototype.
(struct type_pair, type_pair_hash, type_pair_eq)
(create_copied_types_hash, copy_type_recursive): New.
* gdbtypes.h: Include "hashtab.h".
(TYPE_ZALLOC): New.
(create_copied_types_hash, copy_type_recursive): New prototypes.
* objfiles.c (free_objfile): Call preserve_values.
* symfile.c (reread_symbols): Likewise.
(clear_symtab_users): Remove calls to clear_value_history and
clear_internalvars.
* value.c (clear_value_history, clear_internalvars): Removed.
(preserve_one_value, preserve_values): New functions.
* value.h (clear_value_history, clear_internalvars): Removed.
(preserve_values): New prototype.
* tracepoint.c (_initialize_tracepoint): Do not initialize convenience
variables here.
gdb/doc/
* gdb.texinfo (Files): Remove obsolete bits from the description
of "symbol-file".
Diffstat (limited to 'gdb/utils.c')
-rw-r--r-- | gdb/utils.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gdb/utils.c b/gdb/utils.c index eb870ac..fdebbdc 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -53,6 +53,7 @@ #include "annotate.h" #include "filenames.h" #include "symfile.h" +#include "gdb_obstack.h" #include "inferior.h" /* for signed_pointer_to_address */ @@ -3124,3 +3125,26 @@ align_down (ULONGEST v, int n) gdb_assert (n && (n & (n-1)) == 0); return (v & -n); } + +/* Allocation function for the libiberty hash table which uses an + obstack. The obstack is passed as DATA. */ + +void * +hashtab_obstack_allocate (void *data, size_t size, size_t count) +{ + unsigned int total = size * count; + void *ptr = obstack_alloc ((struct obstack *) data, total); + memset (ptr, 0, total); + return ptr; +} + +/* Trivial deallocation function for the libiberty splay tree and hash + table - don't deallocate anything. Rely on later deletion of the + obstack. DATA will be the obstack, although it is not needed + here. */ + +void +dummy_obstack_deallocate (void *object, void *data) +{ + return; +} |