aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.c
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>1992-05-06 21:16:11 +0000
committerFred Fish <fnf@specifix.com>1992-05-06 21:16:11 +0000
commit55b3ef9a579d2a5475728f8e53f71923af896f23 (patch)
tree57025fdc4acd8e8cf0dba63f2ef43217a65ff8da /gdb/objfiles.c
parent32846f9c3e3714fcc88615c9f670850a5978354a (diff)
downloadgdb-55b3ef9a579d2a5475728f8e53f71923af896f23.zip
gdb-55b3ef9a579d2a5475728f8e53f71923af896f23.tar.gz
gdb-55b3ef9a579d2a5475728f8e53f71923af896f23.tar.bz2
* cplus-dem.c (do_args): Handle void args the same as others.
* objfiles.c (free_objfile): Only try to unmap files when reusable objfiles are supported. * valprint.c (type_print_varspec_suffix): Add parameter that specifies if C++ demangling included function arguments. Use it to suppress printing extra pair of ()'s. * valprint.c (type_print_1): Fix problem with printing demangled C++ function types where demangled type includes the function args.
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r--gdb/objfiles.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 4443c5d..642026c 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -277,15 +277,24 @@ free_objfile (objfile)
case. Note that the mmalloc_detach or the mfree is the last thing
we can do with this objfile. */
+#if !defined(NO_MMALLOC) && defined(HAVE_MMAP)
+
if (objfile -> flags & OBJF_MAPPED)
{
/* Remember the fd so we can close it. We can't close it before
doing the detach, and after the detach the objfile is gone. */
mmfd = objfile -> mmfd;
mmalloc_detach (objfile -> md);
+ objfile = NULL;
(void) close (mmfd);
}
- else
+
+#endif /* !defined(NO_MMALLOC) && defined(HAVE_MMAP) */
+
+ /* If we still have an objfile, then either we don't support reusable
+ objfiles or this one was not reusable. So free it normally. */
+
+ if (objfile != NULL)
{
if (objfile -> name != NULL)
{
@@ -296,6 +305,7 @@ free_objfile (objfile)
obstack_free (&objfile -> symbol_obstack, 0);
obstack_free (&objfile -> type_obstack, 0);
mfree (objfile -> md, objfile);
+ objfile = NULL;
}
}