Mercurial > emacs
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