aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/bfd-in2.h4
-rw-r--r--bfd/section.c6
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/exec.c22
5 files changed, 31 insertions, 11 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 9307eb9..23a6049 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2003-11-03 Andrew Cagney <cagney@redhat.com>
+
+ * section.c (bfd_set_section_contents): Make the "location" buffer
+ constant.
+ * bfd-in2.h: Re-generate.
+
2003-10-30 Andrew Cagney <cagney@redhat.com>
* syms.c: Replace "struct symbol_cache_entry" with "struct
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 27dbca9..1d01116 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1483,8 +1483,8 @@ bfd_boolean bfd_set_section_size
(bfd *abfd, asection *sec, bfd_size_type val);
bfd_boolean bfd_set_section_contents
- (bfd *abfd, asection *section, void *data, file_ptr offset,
- bfd_size_type count);
+ (bfd *abfd, asection *section, const void *data,
+ file_ptr offset, bfd_size_type count);
bfd_boolean bfd_get_section_contents
(bfd *abfd, asection *section, void *location, file_ptr offset,
diff --git a/bfd/section.c b/bfd/section.c
index 360d117..e99062a 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -1132,8 +1132,8 @@ FUNCTION
SYNOPSIS
bfd_boolean bfd_set_section_contents
- (bfd *abfd, asection *section, void *data, file_ptr offset,
- bfd_size_type count);
+ (bfd *abfd, asection *section, const void *data,
+ file_ptr offset, bfd_size_type count);
DESCRIPTION
Sets the contents of the section @var{section} in BFD
@@ -1161,7 +1161,7 @@ DESCRIPTION
bfd_boolean
bfd_set_section_contents (bfd *abfd,
sec_ptr section,
- void *location,
+ const void *location,
file_ptr offset,
bfd_size_type count)
{
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a580602..9b2eb40 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2003-11-03 Andrew Cagney <cagney@redhat.com>
+
+ * exec.c (xfer_memory): Eliminate xfer_fn.
+
2003-10-31 Kevin Buettner <kevinb@redhat.com>
* frv-tdep.c (gdb_assert.h, sim-regno.h, gdb/sim-frv.h)
diff --git a/gdb/exec.c b/gdb/exec.c
index 8ca669e..a8ae0c0 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;
}
}