make_cleanup_restore_current_thread: Look up thread earlier

The unconditional is_stopped call already asserts that the thread exists.

gdb/ChangeLog:
2017-05-04  Pedro Alves  <palves@redhat.com>

	* thread.c (make_cleanup_restore_current_thread): Move
	find_thread_ptid call before the is_stopped call.  Assert that the
	thread is found.  Replace is_stopped call by checking the thread's
	state directly.  Remove unnecessary NULL-thread check.
This commit is contained in:
Pedro Alves 2017-05-04 14:43:34 +01:00
parent 3c3ae77e68
commit f6223dbb50
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2017-05-04 Pedro Alves <palves@redhat.com>
* thread.c (make_cleanup_restore_current_thread): Move
find_thread_ptid call before the is_stopped call. Assert that the
thread is found. Replace is_stopped call by checking the thread's
state directly. Remove unnecessary NULL-thread check.
2017-05-04 Pedro Alves <palves@redhat.com>
* corelow.c (thread_section_name): New class.

View File

@ -1626,9 +1626,12 @@ make_cleanup_restore_current_thread (void)
if (inferior_ptid != null_ptid)
{
thread_info *tp = find_thread_ptid (inferior_ptid);
struct frame_info *frame;
old->was_stopped = is_stopped (inferior_ptid);
gdb_assert (tp != NULL);
old->was_stopped = tp->state == THREAD_STOPPED;
if (old->was_stopped
&& target_has_registers
&& target_has_stack
@ -1647,10 +1650,7 @@ make_cleanup_restore_current_thread (void)
old->selected_frame_id = get_frame_id (frame);
old->selected_frame_level = frame_relative_level (frame);
struct thread_info *tp = find_thread_ptid (inferior_ptid);
if (tp)
tp->incref ();
tp->incref ();
old->thread = tp;
}