aboutsummaryrefslogtreecommitdiff
path: root/gdbserver/regcache.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gdbserver/regcache.cc')
-rw-r--r--gdbserver/regcache.cc10
1 files changed, 4 insertions, 6 deletions
diff --git a/gdbserver/regcache.cc b/gdbserver/regcache.cc
index 312f14e..304be0d 100644
--- a/gdbserver/regcache.cc
+++ b/gdbserver/regcache.cc
@@ -49,14 +49,13 @@ get_thread_regcache (struct thread_info *thread, int fetch)
if (fetch && regcache->registers_valid == 0)
{
- struct thread_info *saved_thread = current_thread;
+ scoped_restore_current_thread restore_thread;
- current_thread = thread;
+ switch_to_thread (thread);
/* Invalidate all registers, to prevent stale left-overs. */
memset (regcache->register_status, REG_UNAVAILABLE,
regcache->tdesc->reg_defs.size ());
fetch_inferior_registers (regcache, -1);
- current_thread = saved_thread;
regcache->registers_valid = 1;
}
@@ -83,11 +82,10 @@ regcache_invalidate_thread (struct thread_info *thread)
if (regcache->registers_valid)
{
- struct thread_info *saved_thread = current_thread;
+ scoped_restore_current_thread restore_thread;
- current_thread = thread;
+ switch_to_thread (thread);
store_inferior_registers (regcache, -1);
- current_thread = saved_thread;
}
regcache->registers_valid = 0;