push last_program_signals_packet into struct remote_state

This moves the global last_program_signals_packet into remote_state.

	* remote.c (struct remote_state) <last_program_signals_packet>:
	New field.
	(last_program_signals_packet): Remove.
	(remote_program_signals, remote_open_1): Update.
This commit is contained in:
Tom Tromey 2013-08-14 18:05:51 +00:00
parent 747dc59d20
commit 5e4a05c431
2 changed files with 20 additions and 14 deletions

View File

@ -1,3 +1,10 @@
2013-08-14 Tom Tromey <tromey@redhat.com>
* remote.c (struct remote_state) <last_program_signals_packet>:
New field.
(last_program_signals_packet): Remove.
(remote_program_signals, remote_open_1): Update.
2013-08-14 Tom Tromey <tromey@redhat.com>
* remote.c (struct remote_state) <last_pass_packet>:

View File

@ -377,6 +377,12 @@ struct remote_state
int remote_traceframe_number;
char *last_pass_packet;
/* The last QProgramSignals packet sent to the target. We bypass
sending a new program signals list down to the target if the new
packet is exactly the same as the last we sent. IOW, we only let
the target know about program signals list changes. */
char *last_program_signals_packet;
};
/* Private data that we'll store in (struct thread_info)->private. */
@ -1703,13 +1709,6 @@ remote_pass_signals (int numsigs, unsigned char *pass_signals)
}
}
/* The last QProgramSignals packet sent to the target. We bypass
sending a new program signals list down to the target if the new
packet is exactly the same as the last we sent. IOW, we only let
the target know about program signals list changes. */
static char *last_program_signals_packet;
/* If 'QProgramSignals' is supported, tell the remote stub what
signals it should pass through to the inferior when detaching. */
@ -1720,6 +1719,7 @@ remote_program_signals (int numsigs, unsigned char *signals)
{
char *packet, *p;
int count = 0, i;
struct remote_state *rs = get_remote_state ();
gdb_assert (numsigs < 256);
for (i = 0; i < numsigs; i++)
@ -1745,17 +1745,16 @@ remote_program_signals (int numsigs, unsigned char *signals)
}
}
*p = 0;
if (!last_program_signals_packet
|| strcmp (last_program_signals_packet, packet) != 0)
if (!rs->last_program_signals_packet
|| strcmp (rs->last_program_signals_packet, packet) != 0)
{
struct remote_state *rs = get_remote_state ();
char *buf = rs->buf;
putpkt (packet);
getpkt (&rs->buf, &rs->buf_size, 0);
packet_ok (buf, &remote_protocol_packets[PACKET_QProgramSignals]);
xfree (last_program_signals_packet);
last_program_signals_packet = packet;
xfree (rs->last_program_signals_packet);
rs->last_program_signals_packet = packet;
}
else
xfree (packet);
@ -4285,8 +4284,8 @@ remote_open_1 (char *name, int from_tty,
/* Make sure we send the program signals list the next time we
resume. */
xfree (last_program_signals_packet);
last_program_signals_packet = NULL;
xfree (rs->last_program_signals_packet);
rs->last_program_signals_packet = NULL;
remote_fileio_reset ();
reopen_exec_file ();