Convert the free `regcache_cpy` function to a method of the
regcache struct.
---
gdbserver/regcache.cc | 16 ++++++++--------
gdbserver/regcache.h | 5 +++--
gdbserver/tracepoint.cc | 2 +-
3 files changed, 12 insertions(+), 11 deletions(-)
@@ -180,19 +180,19 @@ free_register_cache (struct regcache *regcache)
#endif
void
-regcache_cpy (struct regcache *dst, struct regcache *src)
+regcache::copy_from (regcache *src)
{
- gdb_assert (src != NULL && dst != NULL);
- gdb_assert (src->tdesc == dst->tdesc);
- gdb_assert (src != dst);
+ gdb_assert (src != nullptr);
+ gdb_assert (src->tdesc == this->tdesc);
+ gdb_assert (src != this);
- memcpy (dst->registers, src->registers, src->tdesc->registers_size);
+ memcpy (this->registers, src->registers, src->tdesc->registers_size);
#ifndef IN_PROCESS_AGENT
- if (dst->register_status != NULL && src->register_status != NULL)
- memcpy (dst->register_status, src->register_status,
+ if (this->register_status != nullptr && src->register_status != nullptr)
+ memcpy (this->register_status, src->register_status,
src->tdesc->reg_defs.size ());
#endif
- dst->registers_valid = src->registers_valid;
+ this->registers_valid = src->registers_valid;
}
/* Return a reference to the description of register N. */
@@ -70,9 +70,10 @@ struct regcache : public reg_buffer_common
/* Fetch the registers from the target, if not done already. */
void fetch ();
-};
-void regcache_cpy (struct regcache *dst, struct regcache *src);
+ /* Copy the contents of SRC into this regcache. */
+ void copy_from (regcache *src);
+};
regcache *get_thread_regcache (thread_info *thread, bool fetch = true);
@@ -4802,7 +4802,7 @@ do_action_at_tracepoint (struct tracepoint_hit_ctx *ctx,
tregcache.initialize (context_regcache->tdesc, regspace + 1);
/* Copy the register data to the regblock. */
- regcache_cpy (&tregcache, context_regcache);
+ tregcache.copy_from (context_regcache);
#ifndef IN_PROCESS_AGENT
/* On some platforms, trap-based tracepoints will have the PC