changeset 55798:a1bb695e9a0c

(struct backtrace): Remove. (Fgarbage_collect): Use the new mark_backtrace.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 28 May 2004 20:59:14 +0000
parents 954cec4917f6
children 85609e1fa661
files src/alloc.c
diffstat 1 files changed, 2 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/alloc.c	Fri May 28 20:56:41 2004 +0000
+++ b/src/alloc.c	Fri May 28 20:59:14 2004 +0000
@@ -256,6 +256,7 @@
 
 static void mark_buffer P_ ((Lisp_Object));
 extern void mark_kboards P_ ((void));
+extern void mark_backtrace P_ ((void));
 static void gc_sweep P_ ((void));
 static void mark_glyph_matrix P_ ((struct glyph_matrix *));
 static void mark_face_cache P_ ((struct face_cache *));
@@ -4282,20 +4283,6 @@
     struct catchtag *next;
 };
 
-struct backtrace
-{
-  struct backtrace *next;
-  Lisp_Object *function;
-  Lisp_Object *args;	/* Points to vector of args.  */
-  int nargs;		/* Length of vector.  */
-  /* If nargs is UNEVALLED, args points to slot holding list of
-     unevalled args.  */
-  char evalargs;
-  /* Nonzero means call value of debugger when done with this operation. */
-  char debug_on_exit;
-};
-
-
 
 /***********************************************************************
 			  Protection from GC
@@ -4330,7 +4317,6 @@
   register struct specbinding *bind;
   struct catchtag *catch;
   struct handler *handler;
-  register struct backtrace *backlist;
   char stack_top_variable;
   register int i;
   int message_p;
@@ -4459,17 +4445,7 @@
       mark_object (handler->handler);
       mark_object (handler->var);
     }
-  for (backlist = backtrace_list; backlist; backlist = backlist->next)
-    {
-      mark_object (*backlist->function);
-
-      if (backlist->nargs == UNEVALLED || backlist->nargs == MANY)
-	i = 0;
-      else
-	i = backlist->nargs - 1;
-      for (; i >= 0; i--)
-	mark_object (backlist->args[i]);
-    }
+  mark_backtrace ();
   mark_kboards ();
 
 #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES