* thread.c (free_thread): New function.
authorNicholas Duffek <nsd@redhat.com>
Wed, 19 Jul 2000 21:03:06 +0000 (21:03 +0000)
committerNicholas Duffek <nsd@redhat.com>
Wed, 19 Jul 2000 21:03:06 +0000 (21:03 +0000)
(init_thread_list): Always zero highest_thread_num.  Call
free_thread() instead of free().
(delete_thread): Move thread cleanup code to free_thread().

gdb/ChangeLog
gdb/thread.c

index 9624c4a9cea8ebff9c505bc047574b6f8844ffd2..c2cd85f375f8ca49d85dbedfc971987f21a7744e 100644 (file)
@@ -1,3 +1,10 @@
+2000-07-19  Nicholas Duffek  <nsd@redhat.com>
+
+       * thread.c (free_thread): New function.
+       (init_thread_list): Always zero highest_thread_num.  Call
+       free_thread() instead of free().
+       (delete_thread): Move thread cleanup code to free_thread().
+
 2000-07-19  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>
 
         Multiarch the sh target.
index 38e74d45b154e9c18664a63e2aaada2a2d26afc9..00c6467f254b54958560155bd9b2360cb5fabafb 100644 (file)
@@ -63,22 +63,38 @@ static void restore_current_thread (int);
 static void switch_to_thread (int pid);
 static void prune_threads (void);
 
+static void
+free_thread (struct thread_info *tp)
+{
+  /* NOTE: this will take care of any left-over step_resume breakpoints,
+     but not any user-specified thread-specific breakpoints. */
+  if (tp->step_resume_breakpoint)
+    delete_breakpoint (tp->step_resume_breakpoint);
+
+  /* FIXME: do I ever need to call the back-end to give it a
+     chance at this private data before deleting the thread?  */
+  if (tp->private)
+    free (tp->private);
+
+  free (tp);
+}
+
 void
 init_thread_list ()
 {
   struct thread_info *tp, *tpnext;
 
+  highest_thread_num = 0;
   if (!thread_list)
     return;
 
   for (tp = thread_list; tp; tp = tpnext)
     {
       tpnext = tp->next;
-      free (tp);
+      free_thread (tp);
     }
 
   thread_list = NULL;
-  highest_thread_num = 0;
 }
 
 /* add_thread now returns a pointer to the new thread_info, 
@@ -134,19 +150,7 @@ delete_thread (pid)
   else
     thread_list = tp->next;
 
-  /* NOTE: this will take care of any left-over step_resume breakpoints,
-     but not any user-specified thread-specific breakpoints. */
-  if (tp->step_resume_breakpoint)
-    delete_breakpoint (tp->step_resume_breakpoint);
-
-  /* FIXME: do I ever need to call the back-end to give it a
-     chance at this private data before deleting the thread?  */
-  if (tp->private)
-    free (tp->private);
-
-  free (tp);
-
-  return;
+  free_thread (tp);
 }
 
 static struct thread_info *