* cplus-dem.c (do_args): Handle void args the same as others.
authorFred Fish <fnf@specifix.com>
Wed, 6 May 1992 21:16:11 +0000 (21:16 +0000)
committerFred Fish <fnf@specifix.com>
Wed, 6 May 1992 21:16:11 +0000 (21:16 +0000)
* 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.

gdb/ChangeLog
gdb/cplus-dem.c
gdb/objfiles.c

index 1f2864c3f8ac79572a2dcb8719c4b00a1f60b7f0..ed7a3977c6ba5138f043cae393d0d6c8122f1219 100644 (file)
@@ -1,3 +1,15 @@
+Wed May  6 14:12:35 1992  Fred Fish  (fnf@cygnus.com)
+
+       * 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.
+
 Tue May  5 11:10:27 1992  Fred Fish  (fnf@cygnus.com)
 
        * Makefile.in (DEMANGLER):  Define and default to cplus-dem.
index ddd07e4a0789bccc332307811d48aa187e43de0c..11d4e485e9c2b4036eec4dd96109ec0757c3e947 100644 (file)
@@ -1114,7 +1114,7 @@ do_args (type, decl, work)
   if (PRINT_ARG_TYPES)
     string_append (decl, "(");
 
-  while (**type != '_' && **type != '\0' && **type != 'e' && **type != 'v')
+  while (**type != '_' && **type != '\0' && **type != 'e')
     {
       if (**type == 'N')
        {
@@ -1149,9 +1149,7 @@ do_args (type, decl, work)
        }
     }
 
-  if (**type == 'v')
-    *type += 1;
-  else if (**type == 'e')
+  if (**type == 'e')
     {
       *type += 1;
       if (PRINT_ARG_TYPES)
index 4443c5d3efc59acd30487f09d6675c6c7a06c8d7..642026c7cdc8a16e8c2f08061170dfd89c1813b5 100644 (file)
@@ -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;
     }
 }