From: David Carlton Date: Tue, 4 Feb 2003 21:59:00 +0000 (+0000) Subject: 2003-02-04 David Carlton X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70a65e1308ec1427299c6b893597b4e26c325801;p=thirdparty%2Fbinutils-gdb.git 2003-02-04 David Carlton * objfiles.c (allocate_objfile): Always set name. Add comment at start of function. * jv-lang.c (get_dynamics_objfile): Add comment. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9ecc3d343da..1ff487caab2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2003-02-04 David Carlton + + * objfiles.c (allocate_objfile): Always set name. Add comment at + start of function. + * jv-lang.c (get_dynamics_objfile): Add comment. + 2003-02-03 Michal Ludvig * dwarf2cfi.c (pointer_encoding): Added new parameter. diff --git a/gdb/jv-lang.c b/gdb/jv-lang.c index 3afdebdb467..b283f36cbc8 100644 --- a/gdb/jv-lang.c +++ b/gdb/jv-lang.c @@ -68,6 +68,12 @@ static struct objfile *dynamics_objfile = NULL; static struct type *java_link_class_type (struct type *, struct value *); +/* FIXME: carlton/2003-02-04: This is the main or only caller of + allocate_objfile with first argument NULL; as a result, this code + breaks every so often. Somebody should write a test case that + exercises GDB in various ways (e.g. something involving loading a + dynamic library) after this code has been called. */ + static struct objfile * get_dynamics_objfile (void) { diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 9c5e49fde60..042c72def5f 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -149,6 +149,15 @@ build_objfile_section_table (struct objfile *objfile) OBJF_SHARED are simply copied through to the new objfile flags member. */ +/* NOTE: carlton/2003-02-04: This function is called with args NULL, 0 + by jv-lang.c, to create an artificial objfile used to hold + information about dynamically-loaded Java classes. Unfortunately, + that branch of this function doesn't get tested very frequently, so + it's prone to breakage. (E.g. at one time the name was set to NULL + in that situation, which broke a loop over all names in the dynamic + library loader.) If you change this function, please try to leave + things in a consistent state even if abfd is NULL. */ + struct objfile * allocate_objfile (bfd *abfd, int flags) { @@ -305,6 +314,10 @@ allocate_objfile (bfd *abfd, int flags) objfile->name, bfd_errmsg (bfd_get_error ())); } } + else + { + objfile->name = "<>"; + } /* Initialize the section indexes for this objfile, so that we can later detect if they are used w/o being properly assigned to. */