Fix a bug in matching notifications.
[deliverable/binutils-gdb.git] / gdb / gdbserver / notif.c
index e27746e43872c5796988bcec248a854233ceea11..6da2c5cf534599c3b070d4b595cb8182ac4e7181 100644 (file)
@@ -78,20 +78,23 @@ notif_write_event (struct notif_server *notif, char *own_buf)
 int
 handle_notif_ack (char *own_buf, int packet_len)
 {
-  int i = 0;
-  struct notif_server *np = NULL;
+  size_t i;
+  struct notif_server *np;
 
   for (i = 0; i < ARRAY_SIZE (notifs); i++)
     {
-      np = notifs[i];
-      if (strncmp (own_buf, np->ack_name, strlen (np->ack_name)) == 0
-         && packet_len == strlen (np->ack_name))
+      const char *ack_name = notifs[i]->ack_name;
+
+      if (strncmp (own_buf, ack_name, strlen (ack_name)) == 0
+         && packet_len == strlen (ack_name))
        break;
     }
 
-  if (np == NULL)
+  if (i == ARRAY_SIZE (notifs))
     return 0;
 
+  np = notifs[i];
+
   /* If we're waiting for GDB to acknowledge a pending event,
      consider that done.  */
   if (!QUEUE_is_empty (notif_event_p, np->queue))
This page took 0.023556 seconds and 4 git commands to generate.