aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-04-07 16:31:01 -0600
committerTom Tromey <tom@tromey.com>2019-04-19 14:29:33 -0600
commit97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8 (patch)
treea41bf581ac78fbae6542524a3a7e3b2543081d64 /gdb/remote-notif.c
parentUse std::list for event notifications in gdbserver (diff)
downloadbinutils-gdb-97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8.tar.gz
binutils-gdb-97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8.tar.bz2
binutils-gdb-97dfbaddad2b5acf3dd9f2c3e0135b89bde1cbf8.zip
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.c')
-rw-r--r--gdb/remote-notif.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/gdb/remote-notif.c b/gdb/remote-notif.c
index eece9470061..2680618b3fa 100644
--- a/gdb/remote-notif.c
+++ b/gdb/remote-notif.c
@@ -85,8 +85,6 @@ remote_notif_parse (remote_target *remote,
return event.release ();
}
-DEFINE_QUEUE_P (notif_client_p);
-
/* Process notifications in STATE's notification queue one by one.
EXCEPT is not expected in the queue. */
@@ -94,10 +92,10 @@ void
remote_notif_process (struct remote_notif_state *state,
struct notif_client *except)
{
- while (!QUEUE_is_empty (notif_client_p, state->notif_queue))
+ while (!state->notif_queue.empty ())
{
- struct notif_client *nc = QUEUE_deque (notif_client_p,
- state->notif_queue);
+ struct notif_client *nc = state->notif_queue.front ();
+ state->notif_queue.pop_front ();
gdb_assert (nc != except);
@@ -158,7 +156,7 @@ handle_notification (struct remote_notif_state *state, const char *buf)
/* Notify the event loop there's a stop reply to acknowledge
and that there may be more events to fetch. */
- QUEUE_enque (notif_client_p, state->notif_queue, nc);
+ state->notif_queue.push_back (nc);
if (target_is_non_stop_p ())
{
/* In non-stop, We mark REMOTE_ASYNC_GET_PENDING_EVENTS_TOKEN
@@ -212,12 +210,10 @@ handle_notification (struct remote_notif_state *state, const char *buf)
struct remote_notif_state *
remote_notif_state_allocate (remote_target *remote)
{
- struct remote_notif_state *notif_state = XCNEW (struct remote_notif_state);
+ struct remote_notif_state *notif_state = new struct remote_notif_state;
notif_state->remote = remote;
- notif_state->notif_queue = QUEUE_alloc (notif_client_p, NULL);
-
/* Register async_event_handler for notification. */
notif_state->get_pending_events_token
@@ -229,21 +225,16 @@ remote_notif_state_allocate (remote_target *remote)
/* Free STATE and its fields. */
-void
-remote_notif_state_xfree (struct remote_notif_state *state)
+remote_notif_state::~remote_notif_state ()
{
int i;
- QUEUE_free (notif_client_p, state->notif_queue);
-
/* Unregister async_event_handler for notification. */
- if (state->get_pending_events_token != NULL)
- delete_async_event_handler (&state->get_pending_events_token);
+ if (get_pending_events_token != NULL)
+ delete_async_event_handler (&get_pending_events_token);
for (i = 0; i < REMOTE_NOTIF_LAST; i++)
- delete state->pending_event[i];
-
- xfree (state);
+ delete pending_event[i];
}
void