summaryrefslogtreecommitdiff
path: root/gdb/exec.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2003-11-03 14:44:08 +0000
committerAndrew Cagney <cagney@redhat.com>2003-11-03 14:44:08 +0000
commit07c8a5f6f27a80ac33b007bea7388939aa8f4186 (patch)
tree86b09b9b2c3a6a2b2b46980e5fe76dfecd297b55 /gdb/exec.c
parent5dab56150fa325aa4cc30946c614bf482b2de220 (diff)
downloadgdb-07c8a5f6f27a80ac33b007bea7388939aa8f4186.tar.gz
2003-11-03 Andrew Cagney <cagney@redhat.com>
* section.c (bfd_set_section_contents): Make the "location" buffer constant. * bfd-in2.h: Re-generate. Index: gdb/ChangeLog 2003-11-03 Andrew Cagney <cagney@redhat.com> * exec.c (xfer_memory): Eliminate xfer_fn.
Diffstat (limited to 'gdb/exec.c')
-rw-r--r--gdb/exec.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/gdb/exec.c b/gdb/exec.c
index 8ca669ea674..a8ae0c03acf 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -457,7 +457,6 @@ xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
int res;
struct section_table *p;
CORE_ADDR nextsectaddr, memend;
- int (*xfer_fn) (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
asection *section = NULL;
if (len <= 0)
@@ -471,7 +470,6 @@ xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
}
memend = memaddr + len;
- xfer_fn = write ? bfd_set_section_contents : bfd_get_section_contents;
nextsectaddr = memend;
for (p = target->to_sections; p < target->to_sections_end; p++)
@@ -484,8 +482,14 @@ xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
if (memend <= p->endaddr)
{
/* Entire transfer is within this section. */
- res = xfer_fn (p->bfd, p->the_bfd_section, myaddr,
- memaddr - p->addr, len);
+ if (write)
+ res = bfd_set_section_contents (p->bfd, p->the_bfd_section,
+ myaddr, memaddr - p->addr,
+ len);
+ else
+ res = bfd_get_section_contents (p->bfd, p->the_bfd_section,
+ myaddr, memaddr - p->addr,
+ len);
return (res != 0) ? len : 0;
}
else if (memaddr >= p->endaddr)
@@ -497,8 +501,14 @@ xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
{
/* This section overlaps the transfer. Just do half. */
len = p->endaddr - memaddr;
- res = xfer_fn (p->bfd, p->the_bfd_section, myaddr,
- memaddr - p->addr, len);
+ if (write)
+ res = bfd_set_section_contents (p->bfd, p->the_bfd_section,
+ myaddr, memaddr - p->addr,
+ len);
+ else
+ res = bfd_get_section_contents (p->bfd, p->the_bfd_section,
+ myaddr, memaddr - p->addr,
+ len);
return (res != 0) ? len : 0;
}
}