diff options
author | Tom Tromey <tom@tromey.com> | 2019-04-07 16:31:01 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-04-19 14:29:33 -0600 |
commit | 97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8 (patch) | |
tree | a41bf581ac78fbae6542524a3a7e3b2543081d64 /gdb/remote-notif.h | |
parent | b494cdff6922944383ef4dc20fcc90c4d823d315 (diff) | |
download | gdb-97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8.zip gdb-97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8.tar.gz gdb-97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8.tar.bz2 |
Use std::list for remote_notif_state::notif_queue
This changes remote_notif_state::notif_queue to be a std::list and
updates all the uses.
gdb/ChangeLog
2019-04-19 Tom Tromey <tom@tromey.com>
* remote.c (remote_target): Use delete.
* remote-notif.h: Include <list>, not "common/queue.h".
(notif_client_p): Remove typedef.
(remote_notif_state): Add constructor, destructor, initializer.
<notif_queue>: Now a std::list.
(remote_notif_state_xfree): Don't declare.
* remote-notif.c (remote_notif_process, handle_notification)
(remote_notif_state_allocate): Update.
(~remote_notif_state): Rename from remote_notif_state_xfree.
Diffstat (limited to 'gdb/remote-notif.h')
-rw-r--r-- | gdb/remote-notif.h | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/gdb/remote-notif.h b/gdb/remote-notif.h index 87b52a1..f9b0b2c 100644 --- a/gdb/remote-notif.h +++ b/gdb/remote-notif.h @@ -20,8 +20,8 @@ #ifndef REMOTE_NOTIF_H #define REMOTE_NOTIF_H +#include <list> #include <memory> -#include "common/queue.h" /* An event of a type of async remote notification. */ @@ -48,7 +48,7 @@ struct remote_target; /* A client to a sort of async remote notification. */ -typedef struct notif_client +struct notif_client { /* The name of notification packet. */ const char *name; @@ -79,20 +79,23 @@ typedef struct notif_client /* Id of this notif_client. */ const enum REMOTE_NOTIF_ID id; -} *notif_client_p; - -DECLARE_QUEUE_P (notif_client_p); +}; /* State on remote async notification. */ struct remote_notif_state { + remote_notif_state () = default; + ~remote_notif_state (); + + DISABLE_COPY_AND_ASSIGN (remote_notif_state); + /* The remote target. */ remote_target *remote; /* Notification queue. */ - QUEUE(notif_client_p) *notif_queue; + std::list<notif_client *> notif_queue; /* Asynchronous signal handle registered as event loop source for when the remote sent us a notification. The registered callback @@ -101,14 +104,14 @@ struct remote_notif_state struct async_event_handler *get_pending_events_token; -/* One pending event for each notification client. This is where we - keep it until it is acknowledged. When there is a notification - packet, parse it, and create an object of 'struct notif_event' to - assign to it. This field is unchanged until GDB starts to ack - this notification (which is done by - remote.c:remote_notif_pending_replies). */ + /* One pending event for each notification client. This is where we + keep it until it is acknowledged. When there is a notification + packet, parse it, and create an object of 'struct notif_event' to + assign to it. This field is unchanged until GDB starts to ack + this notification (which is done by + remote.c:remote_notif_pending_replies). */ - struct notif_event *pending_event[REMOTE_NOTIF_LAST]; + struct notif_event *pending_event[REMOTE_NOTIF_LAST] {}; }; void remote_notif_ack (remote_target *remote, notif_client *nc, @@ -123,7 +126,6 @@ void handle_notification (struct remote_notif_state *notif_state, void remote_notif_process (struct remote_notif_state *state, struct notif_client *except); remote_notif_state *remote_notif_state_allocate (remote_target *remote); -void remote_notif_state_xfree (struct remote_notif_state *state); extern struct notif_client notif_client_stop; |