2004-02-09 Elena Zannoni <ezannoni@redhat.com>

* bcache.c (bcache_xmalloc): Use obstack_init instead of
	obstack_specify_allocation.
	* objfiles.c (allocate_objfile): Ditto.
	* solib-sunos.c (solib_add_common_symbols)
	(allocate_rt_common_objfile): Ditto.
	* symfile.c (reread_symbols): Ditto.
	* gdb_obstack.h: Add comment.
This commit is contained in:
Elena Zannoni
2004-02-09 23:50:55 +00:00
parent f80e2ec4e8
commit 1ab216172b
6 changed files with 31 additions and 11 deletions

View File

@ -1,3 +1,13 @@
2004-02-09 Elena Zannoni <ezannoni@redhat.com>
* bcache.c (bcache_xmalloc): Use obstack_init instead of
obstack_specify_allocation.
* objfiles.c (allocate_objfile): Ditto.
* solib-sunos.c (solib_add_common_symbols)
(allocate_rt_common_objfile): Ditto.
* symfile.c (reread_symbols): Ditto.
* gdb_obstack.h: Add comment.
2004-02-09 Elena Zannoni <ezannoni@redhat.com> 2004-02-09 Elena Zannoni <ezannoni@redhat.com>
* linespec.c (decode_line_1, locate_first_half) * linespec.c (decode_line_1, locate_first_half)

View File

@ -266,7 +266,10 @@ bcache_xmalloc (void)
{ {
/* Allocate the bcache pre-zeroed. */ /* Allocate the bcache pre-zeroed. */
struct bcache *b = XCALLOC (1, struct bcache); struct bcache *b = XCALLOC (1, struct bcache);
obstack_specify_allocation (&b->cache, 0, 0, xmalloc, xfree); /* We could use obstack_specify_allocation here instead, but
gdb_obstack.h specifies the allocation/deallocation
functions. */
obstack_init (&b->cache);
return b; return b;
} }

View File

@ -26,6 +26,13 @@
/* Unless explicitly specified, GDB obstacks always use xmalloc() and /* Unless explicitly specified, GDB obstacks always use xmalloc() and
xfree(). */ xfree(). */
/* Note: ezannoni 2004-02-09: One could also specify the allocation
functions using a special init function for each obstack,
obstack_specify_allocation. However we just use obstack_init and
let these defines here do the job. While one could argue the
superiority of one approach over the other, we just chose one
throughout. */
#define obstack_chunk_alloc xmalloc #define obstack_chunk_alloc xmalloc
#define obstack_chunk_free xfree #define obstack_chunk_free xfree

View File

@ -165,8 +165,9 @@ allocate_objfile (bfd *abfd, int flags)
objfile->md = NULL; objfile->md = NULL;
objfile->psymbol_cache = bcache_xmalloc (); objfile->psymbol_cache = bcache_xmalloc ();
objfile->macro_cache = bcache_xmalloc (); objfile->macro_cache = bcache_xmalloc ();
obstack_specify_allocation (&objfile->objfile_obstack, 0, 0, xmalloc, /* We could use obstack_specify_allocation here instead, but
xfree); gdb_obstack.h specifies the alloc/dealloc functions. */
obstack_init (&objfile->objfile_obstack);
terminate_minimal_symbol_table (objfile); terminate_minimal_symbol_table (objfile);
} }

View File

@ -145,8 +145,7 @@ allocate_rt_common_objfile (void)
objfile->md = NULL; objfile->md = NULL;
objfile->psymbol_cache = bcache_xmalloc (); objfile->psymbol_cache = bcache_xmalloc ();
objfile->macro_cache = bcache_xmalloc (); objfile->macro_cache = bcache_xmalloc ();
obstack_specify_allocation (&objfile->objfile_obstack, 0, 0, xmalloc, obstack_init (&objfile->objfile_obstack);
xfree);
objfile->name = mstrsave (objfile->md, "rt_common"); objfile->name = mstrsave (objfile->md, "rt_common");
/* Add this file onto the tail of the linked list of other such files. */ /* Add this file onto the tail of the linked list of other such files. */
@ -182,8 +181,7 @@ solib_add_common_symbols (CORE_ADDR rtc_symp)
if (rt_common_objfile != NULL && rt_common_objfile->minimal_symbol_count) if (rt_common_objfile != NULL && rt_common_objfile->minimal_symbol_count)
{ {
obstack_free (&rt_common_objfile->objfile_obstack, 0); obstack_free (&rt_common_objfile->objfile_obstack, 0);
obstack_specify_allocation (&rt_common_objfile->objfile_obstack, 0, 0, obstack_init (&rt_common_objfile->objfile_obstack);
xmalloc, xfree);
rt_common_objfile->minimal_symbol_count = 0; rt_common_objfile->minimal_symbol_count = 0;
rt_common_objfile->msymbols = NULL; rt_common_objfile->msymbols = NULL;
terminate_minimal_symbol_table (rt_common_objfile); terminate_minimal_symbol_table (rt_common_objfile);

View File

@ -1933,12 +1933,13 @@ reread_symbols (void)
/* We never make this a mapped file. */ /* We never make this a mapped file. */
objfile->md = NULL; objfile->md = NULL;
/* obstack_specify_allocation also initializes the obstack so
it is empty. */
objfile->psymbol_cache = bcache_xmalloc (); objfile->psymbol_cache = bcache_xmalloc ();
objfile->macro_cache = bcache_xmalloc (); objfile->macro_cache = bcache_xmalloc ();
obstack_specify_allocation (&objfile->objfile_obstack, 0, 0, /* obstack_init also initializes the obstack so it is
xmalloc, xfree); empty. We could use obstack_specify_allocation but
gdb_obstack.h specifies the alloc/dealloc
functions. */
obstack_init (&objfile->objfile_obstack);
if (build_objfile_section_table (objfile)) if (build_objfile_section_table (objfile))
{ {
error ("Can't find the file sections in `%s': %s", error ("Can't find the file sections in `%s': %s",