aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-03-02 12:31:04 -0700
committerTom Tromey <tom@tromey.com>2019-03-15 16:02:10 -0600
commit0de2420c4b023e644f91a409803fedfb235bfc0b (patch)
treefb51210a0a4c6af67ecd0935efa199e64b73e31f
parent042d75e42c5572f333e0e06dabd3c5c4afab486c (diff)
downloadgdb-0de2420c4b023e644f91a409803fedfb235bfc0b.zip
gdb-0de2420c4b023e644f91a409803fedfb235bfc0b.tar.gz
gdb-0de2420c4b023e644f91a409803fedfb235bfc0b.tar.bz2
Use memcpy in minimal_symbol_reader::install
minimal_symbol_reader::install copies minsyms from the msym_bunch objects into the allocated memory. It seemed better to me to do this via memcpy, as that is frequently optimized in libc. gdb/ChangeLog 2019-03-15 Tom Tromey <tom@tromey.com> * minsyms.c (minimal_symbol_reader::install): Use memcpy.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/minsyms.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 581a4c6..8ac4515 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2019-03-15 Tom Tromey <tom@tromey.com>
+ * minsyms.c (minimal_symbol_reader::install): Use memcpy.
+
+2019-03-15 Tom Tromey <tom@tromey.com>
+
* objfiles.h (struct objfile_per_bfd_storage) <msymbols>: Now a
unique_xmalloc_ptr.
(objfile::msymbols_range::begin, objfile::msymbols_range::end):
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 88ff259..93097b1 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -1337,7 +1337,6 @@ build_minimal_symbol_hash_tables (struct objfile *objfile)
void
minimal_symbol_reader::install ()
{
- int bindex;
int mcount;
struct msym_bunch *bunch;
struct minimal_symbol *msymbols;
@@ -1384,8 +1383,9 @@ minimal_symbol_reader::install ()
for (bunch = m_msym_bunch; bunch != NULL; bunch = bunch->next)
{
- for (bindex = 0; bindex < m_msym_bunch_index; bindex++, mcount++)
- msymbols[mcount] = bunch->contents[bindex];
+ memcpy (&msymbols[mcount], &bunch->contents[0],
+ m_msym_bunch_index * sizeof (struct minimal_symbol));
+ mcount += m_msym_bunch_index;
m_msym_bunch_index = BUNCH_SIZE;
}