push last_pass_packet into struct remote_state
authorTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 18:04:52 +0000 (18:04 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 14 Aug 2013 18:04:52 +0000 (18:04 +0000)
This moves the global last_pass_packet into remote_state.

* remote.c (struct remote_state) <last_pass_packet>:
New field.
(last_pass_packet): Remove.
(remote_pass_signals, remote_open_1): Update.

gdb/ChangeLog
gdb/remote.c

index 50d1495..1489d28 100644 (file)
@@ -1,5 +1,12 @@
 2013-08-14  Tom Tromey  <tromey@redhat.com>
 
+       * remote.c (struct remote_state) <last_pass_packet>:
+       New field.
+       (last_pass_packet): Remove.
+       (remote_pass_signals, remote_open_1): Update.
+
+2013-08-14  Tom Tromey  <tromey@redhat.com>
+
        * remote.c (struct remote_state) <remote_traceframe_number>:
        New field.
        (remote_traceframe_number): Remove.
index de74d81..6c12949 100644 (file)
@@ -375,6 +375,8 @@ struct remote_state
   /* This is the traceframe which we last selected on the remote system.
      It will be -1 if no traceframe is selected.  */
   int remote_traceframe_number;
+
+  char *last_pass_packet;
 };
 
 /* Private data that we'll store in (struct thread_info)->private.  */
@@ -1649,8 +1651,6 @@ record_currthread (struct remote_state *rs, ptid_t currthread)
   rs->general_thread = currthread;
 }
 
-static char *last_pass_packet;
-
 /* If 'QPassSignals' is supported, tell the remote stub what signals
    it can simply pass through to the inferior without reporting.  */
 
@@ -1661,6 +1661,7 @@ remote_pass_signals (int numsigs, unsigned char *pass_signals)
     {
       char *pass_packet, *p;
       int count = 0, i;
+      struct remote_state *rs = get_remote_state ();
 
       gdb_assert (numsigs < 256);
       for (i = 0; i < numsigs; i++)
@@ -1686,17 +1687,16 @@ remote_pass_signals (int numsigs, unsigned char *pass_signals)
            }
        }
       *p = 0;
-      if (!last_pass_packet || strcmp (last_pass_packet, pass_packet))
+      if (!rs->last_pass_packet || strcmp (rs->last_pass_packet, pass_packet))
        {
-         struct remote_state *rs = get_remote_state ();
          char *buf = rs->buf;
 
          putpkt (pass_packet);
          getpkt (&rs->buf, &rs->buf_size, 0);
          packet_ok (buf, &remote_protocol_packets[PACKET_QPassSignals]);
-         if (last_pass_packet)
-           xfree (last_pass_packet);
-         last_pass_packet = pass_packet;
+         if (rs->last_pass_packet)
+           xfree (rs->last_pass_packet);
+         rs->last_pass_packet = pass_packet;
        }
       else
        xfree (pass_packet);
@@ -4280,8 +4280,8 @@ remote_open_1 (char *name, int from_tty,
   target_preopen (from_tty);
 
   /* Make sure we send the passed signals list the next time we resume.  */
-  xfree (last_pass_packet);
-  last_pass_packet = NULL;
+  xfree (rs->last_pass_packet);
+  rs->last_pass_packet = NULL;
 
   /* Make sure we send the program signals list the next time we
      resume.  */