]> Git Repo - binutils.git/blobdiff - gdb/objfiles.c
*** empty log message ***
[binutils.git] / gdb / objfiles.c
index e0228f55c99047b5d7b51bf2ee1f900b9c5a9dc0..59e03b93e9be47cc2d9f31c1a76cdb745254c8b6 100644 (file)
@@ -1,5 +1,8 @@
 /* GDB routines for manipulating objfiles.
 /* GDB routines for manipulating objfiles.
-   Copyright 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+
+   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+   2001, 2002, 2003 Free Software Foundation, Inc.
+
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
    This file is part of GDB.
    Contributed by Cygnus Support, using pieces from other GDB modules.
 
    This file is part of GDB.
 #include "objfiles.h"
 #include "gdb-stabs.h"
 #include "target.h"
 #include "objfiles.h"
 #include "gdb-stabs.h"
 #include "target.h"
+#include "bcache.h"
 
 #include <sys/types.h>
 #include "gdb_stat.h"
 #include <fcntl.h>
 
 #include <sys/types.h>
 #include "gdb_stat.h"
 #include <fcntl.h>
-#include "obstack.h"
+#include "gdb_obstack.h"
 #include "gdb_string.h"
 #include "gdb_string.h"
+#include "hashtab.h"
 
 #include "breakpoint.h"
 
 #include "breakpoint.h"
+#include "block.h"
 
 /* Prototypes for local functions */
 
 #if defined(USE_MMALLOC) && defined(HAVE_MMAP)
 
 
 /* Prototypes for local functions */
 
 #if defined(USE_MMALLOC) && defined(HAVE_MMAP)
 
+#include "mmalloc.h"
+
 static int open_existing_mapped_file (char *, long, int);
 
 static int open_mapped_file (char *filename, long mtime, int flags);
 
 static int open_existing_mapped_file (char *, long, int);
 
 static int open_mapped_file (char *filename, long mtime, int flags);
 
-static PTR map_to_file (int);
+static void *map_to_file (int);
 
 #endif /* defined(USE_MMALLOC) && defined(HAVE_MMAP) */
 
 
 #endif /* defined(USE_MMALLOC) && defined(HAVE_MMAP) */
 
-static void add_to_objfile_sections (bfd *, sec_ptr, PTR);
+static void add_to_objfile_sections (bfd *, sec_ptr, void *);
 
 /* Externally visible variables that are owned by this module.
    See declarations in objfile.h for more info. */
 
 /* Externally visible variables that are owned by this module.
    See declarations in objfile.h for more info. */
@@ -76,7 +84,7 @@ int mapped_symbol_files;      /* Try to use mapped symbol files */
    the end of the table (objfile->sections_end). */
 
 static void
    the end of the table (objfile->sections_end). */
 
 static void
-add_to_objfile_sections (bfd *abfd, sec_ptr asect, PTR objfile_p_char)
+add_to_objfile_sections (bfd *abfd, sec_ptr asect, void *objfile_p_char)
 {
   struct objfile *objfile = (struct objfile *) objfile_p_char;
   struct obj_section section;
 {
   struct objfile *objfile = (struct objfile *) objfile_p_char;
   struct obj_section section;
@@ -143,6 +151,15 @@ build_objfile_section_table (struct objfile *objfile)
    OBJF_SHARED are simply copied through to the new objfile flags
    member. */
 
    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)
 {
 struct objfile *
 allocate_objfile (bfd *abfd, int flags)
 {
@@ -172,7 +189,7 @@ allocate_objfile (bfd *abfd, int flags)
                             flags);
       if (fd >= 0)
        {
                             flags);
       if (fd >= 0)
        {
-         PTR md;
+         void *md;
 
          if ((md = map_to_file (fd)) == NULL)
            {
 
          if ((md = map_to_file (fd)) == NULL)
            {
@@ -185,14 +202,21 @@ allocate_objfile (bfd *abfd, int flags)
              objfile->md = md;
              objfile->mmfd = fd;
              /* Update pointers to functions to *our* copies */
              objfile->md = md;
              objfile->mmfd = fd;
              /* Update pointers to functions to *our* copies */
+             if (objfile->demangled_names_hash)
+               htab_set_functions_ex
+                 (objfile->demangled_names_hash, htab_hash_string,
+                  (int (*) (const void *, const void *)) streq, NULL,
+                  objfile->md, xmcalloc, xmfree);
              obstack_chunkfun (&objfile->psymbol_cache.cache, xmmalloc);
              obstack_chunkfun (&objfile->psymbol_cache.cache, xmmalloc);
-             obstack_freefun (&objfile->psymbol_cache.cache, mfree);
+             obstack_freefun (&objfile->psymbol_cache.cache, xmfree);
+             obstack_chunkfun (&objfile->macro_cache.cache, xmmalloc);
+             obstack_freefun (&objfile->macro_cache.cache, xmfree);
              obstack_chunkfun (&objfile->psymbol_obstack, xmmalloc);
              obstack_chunkfun (&objfile->psymbol_obstack, xmmalloc);
-             obstack_freefun (&objfile->psymbol_obstack, mfree);
+             obstack_freefun (&objfile->psymbol_obstack, xmfree);
              obstack_chunkfun (&objfile->symbol_obstack, xmmalloc);
              obstack_chunkfun (&objfile->symbol_obstack, xmmalloc);
-             obstack_freefun (&objfile->symbol_obstack, mfree);
+             obstack_freefun (&objfile->symbol_obstack, xmfree);
              obstack_chunkfun (&objfile->type_obstack, xmmalloc);
              obstack_chunkfun (&objfile->type_obstack, xmmalloc);
-             obstack_freefun (&objfile->type_obstack, mfree);
+             obstack_freefun (&objfile->type_obstack, xmfree);
              /* If already in objfile list, unlink it. */
              unlink_objfile (objfile);
              /* Forget things specific to a particular gdb, may have changed. */
              /* If already in objfile list, unlink it. */
              unlink_objfile (objfile);
              /* Forget things specific to a particular gdb, may have changed. */
@@ -215,16 +239,19 @@ allocate_objfile (bfd *abfd, int flags)
              objfile->flags |= OBJF_MAPPED;
              mmalloc_setkey (objfile->md, 0, objfile);
              obstack_specify_allocation_with_arg (&objfile->psymbol_cache.cache,
              objfile->flags |= OBJF_MAPPED;
              mmalloc_setkey (objfile->md, 0, objfile);
              obstack_specify_allocation_with_arg (&objfile->psymbol_cache.cache,
-                                                  0, 0, xmmalloc, mfree,
+                                                  0, 0, xmmalloc, xmfree,
+                                                  objfile->md);
+             obstack_specify_allocation_with_arg (&objfile->macro_cache.cache,
+                                                  0, 0, xmmalloc, xmfree,
                                                   objfile->md);
              obstack_specify_allocation_with_arg (&objfile->psymbol_obstack,
                                                   objfile->md);
              obstack_specify_allocation_with_arg (&objfile->psymbol_obstack,
-                                                  0, 0, xmmalloc, mfree,
+                                                  0, 0, xmmalloc, xmfree,
                                                   objfile->md);
              obstack_specify_allocation_with_arg (&objfile->symbol_obstack,
                                                   objfile->md);
              obstack_specify_allocation_with_arg (&objfile->symbol_obstack,
-                                                  0, 0, xmmalloc, mfree,
+                                                  0, 0, xmmalloc, xmfree,
                                                   objfile->md);
              obstack_specify_allocation_with_arg (&objfile->type_obstack,
                                                   objfile->md);
              obstack_specify_allocation_with_arg (&objfile->type_obstack,
-                                                  0, 0, xmmalloc, mfree,
+                                                  0, 0, xmmalloc, xmfree,
                                                   objfile->md);
            }
        }
                                                   objfile->md);
            }
        }
@@ -261,15 +288,17 @@ allocate_objfile (bfd *abfd, int flags)
       objfile = (struct objfile *) xmalloc (sizeof (struct objfile));
       memset (objfile, 0, sizeof (struct objfile));
       objfile->md = NULL;
       objfile = (struct objfile *) xmalloc (sizeof (struct objfile));
       memset (objfile, 0, sizeof (struct objfile));
       objfile->md = NULL;
-      obstack_specify_allocation (&objfile->psymbol_cache.cache, 0, 0,
-                                 xmalloc, free);
+      objfile->psymbol_cache = bcache_xmalloc ();
+      objfile->macro_cache = bcache_xmalloc ();
       obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0, xmalloc,
       obstack_specify_allocation (&objfile->psymbol_obstack, 0, 0, xmalloc,
-                                 free);
+                                 xfree);
       obstack_specify_allocation (&objfile->symbol_obstack, 0, 0, xmalloc,
       obstack_specify_allocation (&objfile->symbol_obstack, 0, 0, xmalloc,
-                                 free);
+                                 xfree);
       obstack_specify_allocation (&objfile->type_obstack, 0, 0, xmalloc,
       obstack_specify_allocation (&objfile->type_obstack, 0, 0, xmalloc,
-                                 free);
+                                 xfree);
       flags &= ~OBJF_MAPPED;
       flags &= ~OBJF_MAPPED;
+
+      terminate_minimal_symbol_table (objfile);
     }
 
   /* Update the per-objfile information that comes from the bfd, ensuring
     }
 
   /* Update the per-objfile information that comes from the bfd, ensuring
@@ -279,7 +308,7 @@ allocate_objfile (bfd *abfd, int flags)
   objfile->obfd = abfd;
   if (objfile->name != NULL)
     {
   objfile->obfd = abfd;
   if (objfile->name != NULL)
     {
-      mfree (objfile->md, objfile->name);
+      xmfree (objfile->md, objfile->name);
     }
   if (abfd != NULL)
     {
     }
   if (abfd != NULL)
     {
@@ -294,6 +323,10 @@ allocate_objfile (bfd *abfd, int flags)
                 objfile->name, bfd_errmsg (bfd_get_error ()));
        }
     }
                 objfile->name, bfd_errmsg (bfd_get_error ()));
        }
     }
+  else
+    {
+      objfile->name = mstrsave (objfile->md, "<<anonymous objfile>>");
+    }
 
   /* Initialize the section indexes for this objfile, so that we can
      later detect if they are used w/o being properly assigned to. */
 
   /* Initialize the section indexes for this objfile, so that we can
      later detect if they are used w/o being properly assigned to. */
@@ -322,6 +355,57 @@ allocate_objfile (bfd *abfd, int flags)
   return (objfile);
 }
 
   return (objfile);
 }
 
+
+/* Create the terminating entry of OBJFILE's minimal symbol table.
+   If OBJFILE->msymbols is zero, allocate a single entry from
+   OBJFILE->symbol_obstack; otherwise, just initialize
+   OBJFILE->msymbols[OBJFILE->minimal_symbol_count].  */
+void
+terminate_minimal_symbol_table (struct objfile *objfile)
+{
+  if (! objfile->msymbols)
+    objfile->msymbols = ((struct minimal_symbol *)
+                         obstack_alloc (&objfile->symbol_obstack,
+                                        sizeof (objfile->msymbols[0])));
+
+  {
+    struct minimal_symbol *m
+      = &objfile->msymbols[objfile->minimal_symbol_count];
+
+    memset (m, 0, sizeof (*m));
+    DEPRECATED_SYMBOL_NAME (m) = NULL;
+    SYMBOL_VALUE_ADDRESS (m) = 0;
+    MSYMBOL_INFO (m) = NULL;
+    MSYMBOL_TYPE (m) = mst_unknown;
+    SYMBOL_INIT_LANGUAGE_SPECIFIC (m, language_unknown);
+  }
+}
+
+
+/* Put one object file before a specified on in the global list.
+   This can be used to make sure an object file is destroyed before
+   another when using ALL_OBJFILES_SAFE to free all objfiles. */
+void
+put_objfile_before (struct objfile *objfile, struct objfile *before_this)
+{
+  struct objfile **objp;
+
+  unlink_objfile (objfile);
+  
+  for (objp = &object_files; *objp != NULL; objp = &((*objp)->next))
+    {
+      if (*objp == before_this)
+       {
+         objfile->next = *objp;
+         *objp = objfile;
+         return;
+       }
+    }
+  
+  internal_error (__FILE__, __LINE__,
+                 "put_objfile_before: before objfile not in list");
+}
+
 /* Put OBJFILE at the front of the list.  */
 
 void
 /* Put OBJFILE at the front of the list.  */
 
 void
@@ -370,7 +454,8 @@ unlink_objfile (struct objfile *objfile)
        }
     }
 
        }
     }
 
-  internal_error ("objfiles.c (unlink_objfile): objfile already unlinked");
+  internal_error (__FILE__, __LINE__,
+                 "unlink_objfile: objfile already unlinked");
 }
 
 
 }
 
 
@@ -393,6 +478,18 @@ unlink_objfile (struct objfile *objfile)
 void
 free_objfile (struct objfile *objfile)
 {
 void
 free_objfile (struct objfile *objfile)
 {
+  if (objfile->separate_debug_objfile)
+    {
+      free_objfile (objfile->separate_debug_objfile);
+    }
+  
+  if (objfile->separate_debug_objfile_backlink)
+    {
+      /* We freed the separate debug file, make sure the base objfile
+        doesn't reference it.  */
+      objfile->separate_debug_objfile_backlink->separate_debug_objfile = NULL;
+    }
+  
   /* First do any symbol file specific actions required when we are
      finished with a particular symbol file.  Note that if the objfile
      is using reusable symbol information (via mmalloc) then each of
   /* First do any symbol file specific actions required when we are
      finished with a particular symbol file.  Note that if the objfile
      is using reusable symbol information (via mmalloc) then each of
@@ -413,7 +510,7 @@ free_objfile (struct objfile *objfile)
       if (!bfd_close (objfile->obfd))
        warning ("cannot close \"%s\": %s",
                 name, bfd_errmsg (bfd_get_error ()));
       if (!bfd_close (objfile->obfd))
        warning ("cannot close \"%s\": %s",
                 name, bfd_errmsg (bfd_get_error ()));
-      free (name);
+      xfree (name);
     }
 
   /* Remove it from the chain of all objfiles. */
     }
 
   /* Remove it from the chain of all objfiles. */
@@ -438,9 +535,9 @@ free_objfile (struct objfile *objfile)
   clear_pc_function_cache ();
 
   /* The last thing we do is free the objfile struct itself for the
   clear_pc_function_cache ();
 
   /* The last thing we do is free the objfile struct itself for the
-     non-reusable case, or detach from the mapped file for the reusable
-     case.  Note that the mmalloc_detach or the mfree is the last thing
-     we can do with this objfile. */
+     non-reusable case, or detach from the mapped file for the
+     reusable case.  Note that the mmalloc_detach or the xmfree() is
+     the last thing we can do with this objfile. */
 
 #if defined(USE_MMALLOC) && defined(HAVE_MMAP)
 
 
 #if defined(USE_MMALLOC) && defined(HAVE_MMAP)
 
@@ -465,18 +562,21 @@ free_objfile (struct objfile *objfile)
     {
       if (objfile->name != NULL)
        {
     {
       if (objfile->name != NULL)
        {
-         mfree (objfile->md, objfile->name);
+         xmfree (objfile->md, objfile->name);
        }
       if (objfile->global_psymbols.list)
        }
       if (objfile->global_psymbols.list)
-       mfree (objfile->md, objfile->global_psymbols.list);
+       xmfree (objfile->md, objfile->global_psymbols.list);
       if (objfile->static_psymbols.list)
       if (objfile->static_psymbols.list)
-       mfree (objfile->md, objfile->static_psymbols.list);
+       xmfree (objfile->md, objfile->static_psymbols.list);
       /* Free the obstacks for non-reusable objfiles */
       /* Free the obstacks for non-reusable objfiles */
-      free_bcache (&objfile->psymbol_cache);
+      bcache_xfree (objfile->psymbol_cache);
+      bcache_xfree (objfile->macro_cache);
+      if (objfile->demangled_names_hash)
+       htab_delete (objfile->demangled_names_hash);
       obstack_free (&objfile->psymbol_obstack, 0);
       obstack_free (&objfile->symbol_obstack, 0);
       obstack_free (&objfile->type_obstack, 0);
       obstack_free (&objfile->psymbol_obstack, 0);
       obstack_free (&objfile->symbol_obstack, 0);
       obstack_free (&objfile->type_obstack, 0);
-      mfree (objfile->md, objfile);
+      xmfree (objfile->md, objfile);
       objfile = NULL;
     }
 }
       objfile = NULL;
     }
 }
@@ -555,16 +655,15 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
       for (i = 0; i < BLOCKVECTOR_NBLOCKS (bv); ++i)
        {
          struct block *b;
       for (i = 0; i < BLOCKVECTOR_NBLOCKS (bv); ++i)
        {
          struct block *b;
+         struct symbol *sym;
          int j;
 
          b = BLOCKVECTOR_BLOCK (bv, i);
          BLOCK_START (b) += ANOFFSET (delta, s->block_line_section);
          BLOCK_END (b) += ANOFFSET (delta, s->block_line_section);
 
          int j;
 
          b = BLOCKVECTOR_BLOCK (bv, i);
          BLOCK_START (b) += ANOFFSET (delta, s->block_line_section);
          BLOCK_END (b) += ANOFFSET (delta, s->block_line_section);
 
-         for (j = 0; j < BLOCK_NSYMS (b); ++j)
+         ALL_BLOCK_SYMBOLS (b, j, sym)
            {
            {
-             struct symbol *sym = BLOCK_SYM (b, j);
-
              fixup_symbol_section (sym, objfile);
 
              /* The RS6000 code from which this was taken skipped
              fixup_symbol_section (sym, objfile);
 
              /* The RS6000 code from which this was taken skipped
@@ -584,7 +683,7 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
 
              else if (SYMBOL_CLASS (sym) == LOC_CONST
                       && SYMBOL_NAMESPACE (sym) == LABEL_NAMESPACE
 
              else if (SYMBOL_CLASS (sym) == LOC_CONST
                       && SYMBOL_NAMESPACE (sym) == LABEL_NAMESPACE
-                  && STRCMP (SYMBOL_NAME (sym), MIPS_EFI_SYMBOL_NAME) == 0)
+                      && strcmp (DEPRECATED_SYMBOL_NAME (sym), MIPS_EFI_SYMBOL_NAME) == 0)
                ecoff_relocate_efi (sym, ANOFFSET (delta,
                                                   s->block_line_section));
 #endif
                ecoff_relocate_efi (sym, ANOFFSET (delta,
                                                   s->block_line_section));
 #endif
@@ -642,6 +741,18 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
       (objfile->section_offsets)->offsets[i] = ANOFFSET (new_offsets, i);
   }
 
       (objfile->section_offsets)->offsets[i] = ANOFFSET (new_offsets, i);
   }
 
+  if (objfile->ei.entry_point != ~(CORE_ADDR) 0)
+    {
+      /* Relocate ei.entry_point with its section offset, use SECT_OFF_TEXT
+        only as a fallback.  */
+      struct obj_section *s;
+      s = find_pc_section (objfile->ei.entry_point);
+      if (s)
+        objfile->ei.entry_point += ANOFFSET (delta, s->the_bfd_section->index);
+      else
+        objfile->ei.entry_point += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
+    }
+
   {
     struct obj_section *s;
     bfd *abfd;
   {
     struct obj_section *s;
     bfd *abfd;
@@ -650,31 +761,13 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
 
     ALL_OBJFILE_OSECTIONS (objfile, s)
       {
 
     ALL_OBJFILE_OSECTIONS (objfile, s)
       {
-       flagword flags;
-
-       flags = bfd_get_section_flags (abfd, s->the_bfd_section);
-
-       if (flags & SEC_CODE)
-         {
-           s->addr += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
-           s->endaddr += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
-         }
-       else if (flags & (SEC_DATA | SEC_LOAD))
-         {
-           s->addr += ANOFFSET (delta, SECT_OFF_DATA (objfile));
-           s->endaddr += ANOFFSET (delta, SECT_OFF_DATA (objfile));
-         }
-       else if (flags & SEC_ALLOC)
-         {
-           s->addr += ANOFFSET (delta, SECT_OFF_BSS (objfile));
-           s->endaddr += ANOFFSET (delta, SECT_OFF_BSS (objfile));
-         }
+       int idx = s->the_bfd_section->index;
+       
+       s->addr += ANOFFSET (delta, idx);
+       s->endaddr += ANOFFSET (delta, idx);
       }
   }
 
       }
   }
 
-  if (objfile->ei.entry_point != ~(CORE_ADDR) 0)
-    objfile->ei.entry_point += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
-
   if (objfile->ei.entry_func_lowpc != INVALID_ENTRY_LOWPC)
     {
       objfile->ei.entry_func_lowpc += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
   if (objfile->ei.entry_func_lowpc != INVALID_ENTRY_LOWPC)
     {
       objfile->ei.entry_func_lowpc += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
@@ -768,7 +861,7 @@ have_minimal_symbols (void)
 
   ALL_OBJFILES (ofp)
   {
 
   ALL_OBJFILES (ofp)
   {
-    if (ofp->msymbols != NULL)
+    if (ofp->minimal_symbol_count > 0)
       {
        return 1;
       }
       {
        return 1;
       }
@@ -858,10 +951,10 @@ open_mapped_file (char *filename, long mtime, int flags)
   /* First try to open an existing file in the current directory, and
      then try the directory where the symbol file is located. */
 
   /* First try to open an existing file in the current directory, and
      then try the directory where the symbol file is located. */
 
-  symsfilename = concat ("./", basename (filename), ".syms", (char *) NULL);
+  symsfilename = concat ("./", lbasename (filename), ".syms", (char *) NULL);
   if ((fd = open_existing_mapped_file (symsfilename, mtime, flags)) < 0)
     {
   if ((fd = open_existing_mapped_file (symsfilename, mtime, flags)) < 0)
     {
-      free (symsfilename);
+      xfree (symsfilename);
       symsfilename = concat (filename, ".syms", (char *) NULL);
       fd = open_existing_mapped_file (symsfilename, mtime, flags);
     }
       symsfilename = concat (filename, ".syms", (char *) NULL);
       fd = open_existing_mapped_file (symsfilename, mtime, flags);
     }
@@ -877,8 +970,8 @@ open_mapped_file (char *filename, long mtime, int flags)
 
   if ((fd < 0) && (flags & OBJF_MAPPED))
     {
 
   if ((fd < 0) && (flags & OBJF_MAPPED))
     {
-      free (symsfilename);
-      symsfilename = concat ("./", basename (filename), ".syms",
+      xfree (symsfilename);
+      symsfilename = concat ("./", lbasename (filename), ".syms",
                             (char *) NULL);
       if ((fd = open (symsfilename, O_RDWR | O_CREAT | O_TRUNC, 0666)) < 0)
        {
                             (char *) NULL);
       if ((fd = open (symsfilename, O_RDWR | O_CREAT | O_TRUNC, 0666)) < 0)
        {
@@ -890,17 +983,17 @@ open_mapped_file (char *filename, long mtime, int flags)
        }
     }
 
        }
     }
 
-  free (symsfilename);
+  xfree (symsfilename);
   return (fd);
 }
 
   return (fd);
 }
 
-static PTR
+static void *
 map_to_file (int fd)
 {
 map_to_file (int fd)
 {
-  PTR md;
+  void *md;
   CORE_ADDR mapto;
 
   CORE_ADDR mapto;
 
-  md = mmalloc_attach (fd, (PTR) 0);
+  md = mmalloc_attach (fd, 0);
   if (md != NULL)
     {
       mapto = (CORE_ADDR) mmalloc_getkey (md, 1);
   if (md != NULL)
     {
       mapto = (CORE_ADDR) mmalloc_getkey (md, 1);
@@ -913,7 +1006,7 @@ map_to_file (int fd)
       else if (mapto != (CORE_ADDR) NULL)
        {
          /* This mapping file needs to be remapped at "mapto" */
       else if (mapto != (CORE_ADDR) NULL)
        {
          /* This mapping file needs to be remapped at "mapto" */
-         md = mmalloc_attach (fd, (PTR) mapto);
+         md = mmalloc_attach (fd, mapto);
        }
       else
        {
        }
       else
        {
@@ -925,10 +1018,10 @@ map_to_file (int fd)
                 address selected by mmap, we must truncate it before trying
                 to do an attach at the address we want. */
              ftruncate (fd, 0);
                 address selected by mmap, we must truncate it before trying
                 to do an attach at the address we want. */
              ftruncate (fd, 0);
-             md = mmalloc_attach (fd, (PTR) mapto);
+             md = mmalloc_attach (fd, mapto);
              if (md != NULL)
                {
              if (md != NULL)
                {
-                 mmalloc_setkey (md, 1, (PTR) mapto);
+                 mmalloc_setkey (md, 1, mapto);
                }
            }
        }
                }
            }
        }
This page took 0.043906 seconds and 4 git commands to generate.