* symtab.h (SYMBOL_SET_LINKAGE_NAME): Update comment.
authorTom Tromey <tromey@redhat.com>
Thu, 5 Nov 2009 19:53:04 +0000 (19:53 +0000)
committerTom Tromey <tromey@redhat.com>
Thu, 5 Nov 2009 19:53:04 +0000 (19:53 +0000)
* symfile.c (allocate_symtab): Don't use obsavestring on a
constant string.
* stabsread.c (define_symbol): Don't use obsavestring on a
constant string.
* mdebugread.c (parse_type): Don't use obsavestring on a constant
string.
(new_symtab): Likewise.
* elfread.c (elf_symtab_read): Don't use obsavestring on a
constant string.

gdb/ChangeLog
gdb/elfread.c
gdb/mdebugread.c
gdb/stabsread.c
gdb/symfile.c
gdb/symtab.h

index ff7fa7083bf0ee5aa549e160a9919f3319b86714..bc6f91119c77587b5f11757bcea134bfd9287ade 100644 (file)
@@ -1,3 +1,16 @@
+2009-11-05  Tom Tromey  <tromey@redhat.com>
+
+       * symtab.h (SYMBOL_SET_LINKAGE_NAME): Update comment.
+       * symfile.c (allocate_symtab): Don't use obsavestring on a
+       constant string.
+       * stabsread.c (define_symbol): Don't use obsavestring on a
+       constant string.
+       * mdebugread.c (parse_type): Don't use obsavestring on a constant
+       string.
+       (new_symtab): Likewise.
+       * elfread.c (elf_symtab_read): Don't use obsavestring on a
+       constant string.
+
 2009-11-04  Tom Tromey  <tromey@redhat.com>
 
        * symfile.c (add_psymbol_to_bcache): Don't copy name.  Make
index 131d7d2a9de2cc44e1694acc0bafe330d6377a8b..29b7c0c92914f5945da691d7600bc45b86ece861 100644 (file)
@@ -231,8 +231,9 @@ elf_symtab_read (struct objfile *objfile, int type,
   /* If filesym is nonzero, it points to a file symbol, but we haven't
      seen any section info for it yet.  */
   asymbol *filesym = 0;
-  /* Name of filesym, as saved on the objfile_obstack.  */
-  char *filesymname = obsavestring ("", 0, &objfile->objfile_obstack);
+  /* Name of filesym.  This is either a constant string or is saved on
+     the objfile's obstack.  */
+  char *filesymname = "";
   struct dbx_symfile_info *dbx = objfile->deprecated_sym_stab_info;
   int stripped = (bfd_get_symcount (objfile->obfd) == 0);
 
index aac82e9ab7a7c8e29283678fba3ef8a6db3312c2..7d29b978d2ff7231f8ed7ed26193bb1c896533a2 100644 (file)
@@ -1746,12 +1746,10 @@ parse_type (int fd, union aux_ext *ax, unsigned int aux_index, int *bs,
       TYPE_NFIELDS (tp) = 2;
       TYPE_FIELDS (tp) = ((struct field *)
                          TYPE_ALLOC (tp, 2 * sizeof (struct field)));
-      TYPE_FIELD_NAME (tp, 0) = obsavestring ("Low", strlen ("Low"),
-                                           &current_objfile->objfile_obstack);
+      TYPE_FIELD_NAME (tp, 0) = "Low";
       TYPE_LOW_BOUND (tp) = AUX_GET_DNLOW (bigend, ax);
       ax++;
-      TYPE_FIELD_NAME (tp, 1) = obsavestring ("High", strlen ("High"),
-                                           &current_objfile->objfile_obstack);
+      TYPE_FIELD_NAME (tp, 1) = "High";
       TYPE_HIGH_BOUND (tp) = AUX_GET_DNHIGH (bigend, ax);
       ax++;
     }
@@ -4680,8 +4678,7 @@ new_symtab (char *name, int maxlines, struct objfile *objfile)
     BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
 
   s->free_code = free_linetable;
-  s->debugformat = obsavestring ("ECOFF", 5,
-                                &objfile->objfile_obstack);
+  s->debugformat = "ECOFF";
   return (s);
 }
 
index e62bb15ad3bb691ffe407ee29738a7d2546a08e1..274fe1a6c3e525ccb0fc92ac2cbac12be76be389 100644 (file)
@@ -673,18 +673,14 @@ define_symbol (CORE_ADDR valu, char *string, int desc, int type,
       switch (string[1])
        {
        case 't':
-         SYMBOL_SET_LINKAGE_NAME
-           (sym, obsavestring ("this", strlen ("this"),
-                               &objfile->objfile_obstack));
+         SYMBOL_SET_LINKAGE_NAME (sym, "this");
          break;
 
        case 'v':               /* $vtbl_ptr_type */
          goto normal;
 
        case 'e':
-         SYMBOL_SET_LINKAGE_NAME
-           (sym, obsavestring ("eh_throw", strlen ("eh_throw"),
-                               &objfile->objfile_obstack));
+         SYMBOL_SET_LINKAGE_NAME (sym, "eh_throw");
          break;
 
        case '_':
index c55cb0395bf3faa95240ba815f021a7ef58aca0c..7461ed628885dd840832ddedfa53aa68c688bb3d 100644 (file)
@@ -2750,8 +2750,7 @@ allocate_symtab (char *filename, struct objfile *objfile)
                                   &objfile->objfile_obstack);
   symtab->fullname = NULL;
   symtab->language = deduce_language_from_filename (filename);
-  symtab->debugformat = obsavestring ("unknown", 7,
-                                     &objfile->objfile_obstack);
+  symtab->debugformat = "unknown";
 
   /* Hook it to the objfile it comes from */
 
index acb8510a4b6c12152403d1acf50e853af6ff88ba..2bc3dd5ea638fb2f08cd8c756fccf05acb37bad8 100644 (file)
@@ -185,7 +185,8 @@ extern void symbol_init_language_specific (struct general_symbol_info *symbol,
 /* Set just the linkage name of a symbol; do not try to demangle
    it.  Used for constructs which do not have a mangled name,
    e.g. struct tags.  Unlike SYMBOL_SET_NAMES, linkage_name must
-   be terminated and already on the objfile's obstack.  */
+   be terminated and either already on the objfile's obstack or
+   permanently allocated.  */
 #define SYMBOL_SET_LINKAGE_NAME(symbol,linkage_name) \
   (symbol)->ginfo.name = (linkage_name)