bfd/
[deliverable/binutils-gdb.git] / bfd / elf32-sh64-com.c
index 4c219e8a8d4651f9d6493222cfb2443679ee4558..98f47a9ffcfe89fdb82d8e47d8f3edc647ec694f 100644 (file)
@@ -1,5 +1,5 @@
 /* SuperH SH64-specific support for 32-bit ELF
 /* SuperH SH64-specific support for 32-bit ELF
-   Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -99,7 +99,7 @@ sh64_address_in_cranges (asection *cranges, bfd_vma addr,
 {
   bfd_byte *cranges_contents;
   bfd_byte *found_rangep;
 {
   bfd_byte *cranges_contents;
   bfd_byte *found_rangep;
-  bfd_size_type cranges_size = bfd_section_size (cranges->owner, cranges);
+  bfd_size_type cranges_size = cranges->size;
 
   /* If the size is not a multiple of the cranges entry size, then
      something is badly wrong.  */
 
   /* If the size is not a multiple of the cranges entry size, then
      something is badly wrong.  */
@@ -117,15 +117,8 @@ sh64_address_in_cranges (asection *cranges, bfd_vma addr,
     cranges_contents = cranges->contents;
   else
     {
     cranges_contents = cranges->contents;
   else
     {
-      cranges_contents
-       = bfd_malloc (cranges->_cooked_size != 0
-                     ? cranges->_cooked_size : cranges->_raw_size);
-      if (cranges_contents == NULL)
-       return FALSE;
-
-      if (! bfd_get_section_contents (cranges->owner, cranges,
-                                     cranges_contents, (file_ptr) 0,
-                                     cranges_size))
+      if (!bfd_malloc_and_get_section (cranges->owner, cranges,
+                                      &cranges_contents))
        goto error_return;
 
       /* Is it sorted?  */
        goto error_return;
 
       /* Is it sorted?  */
@@ -182,7 +175,8 @@ sh64_address_in_cranges (asection *cranges, bfd_vma addr,
   return FALSE;
 
 error_return:
   return FALSE;
 
 error_return:
-  free (cranges_contents);
+  if (cranges_contents != NULL)
+    free (cranges_contents);
   return FALSE;
 }
 
   return FALSE;
 }
 
@@ -199,7 +193,7 @@ sh64_get_contents_type (asection *sec, bfd_vma addr, sh64_elf_crange *rangep)
       && elf_elfheader (sec->owner)->e_type == ET_EXEC)
     {
       rangep->cr_addr = bfd_get_section_vma (sec->owner, sec);
       && elf_elfheader (sec->owner)->e_type == ET_EXEC)
     {
       rangep->cr_addr = bfd_get_section_vma (sec->owner, sec);
-      rangep->cr_size = bfd_section_size (sec->owner, sec);
+      rangep->cr_size = sec->size;
       rangep->cr_type = CRT_NONE;
     }
   else
       rangep->cr_type = CRT_NONE;
     }
   else
This page took 0.024685 seconds and 4 git commands to generate.