diff options
| author | Stefan Monnier | 2004-05-28 20:59:14 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2004-05-28 20:59:14 +0000 |
| commit | b40ea20a66404a42ee11d2690b8aa8657fba3388 (patch) | |
| tree | 7e0dd2e50533f2527a1efac96ff3917948f3c172 /src/alloc.c | |
| parent | c9ce1e404884df24ac309aa4d848051853e9c6c3 (diff) | |
| download | emacs-b40ea20a66404a42ee11d2690b8aa8657fba3388.tar.gz emacs-b40ea20a66404a42ee11d2690b8aa8657fba3388.zip | |
(struct backtrace): Remove.
(Fgarbage_collect): Use the new mark_backtrace.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/src/alloc.c b/src/alloc.c index bea6943c26e..452a1fbb2a1 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -256,6 +256,7 @@ EMACS_INT gcs_done; /* accumulated GCs */ | |||
| 256 | 256 | ||
| 257 | static void mark_buffer P_ ((Lisp_Object)); | 257 | static void mark_buffer P_ ((Lisp_Object)); |
| 258 | extern void mark_kboards P_ ((void)); | 258 | extern void mark_kboards P_ ((void)); |
| 259 | extern void mark_backtrace P_ ((void)); | ||
| 259 | static void gc_sweep P_ ((void)); | 260 | static void gc_sweep P_ ((void)); |
| 260 | static void mark_glyph_matrix P_ ((struct glyph_matrix *)); | 261 | static void mark_glyph_matrix P_ ((struct glyph_matrix *)); |
| 261 | static void mark_face_cache P_ ((struct face_cache *)); | 262 | static void mark_face_cache P_ ((struct face_cache *)); |
| @@ -4282,20 +4283,6 @@ struct catchtag | |||
| 4282 | struct catchtag *next; | 4283 | struct catchtag *next; |
| 4283 | }; | 4284 | }; |
| 4284 | 4285 | ||
| 4285 | struct backtrace | ||
| 4286 | { | ||
| 4287 | struct backtrace *next; | ||
| 4288 | Lisp_Object *function; | ||
| 4289 | Lisp_Object *args; /* Points to vector of args. */ | ||
| 4290 | int nargs; /* Length of vector. */ | ||
| 4291 | /* If nargs is UNEVALLED, args points to slot holding list of | ||
| 4292 | unevalled args. */ | ||
| 4293 | char evalargs; | ||
| 4294 | /* Nonzero means call value of debugger when done with this operation. */ | ||
| 4295 | char debug_on_exit; | ||
| 4296 | }; | ||
| 4297 | |||
| 4298 | |||
| 4299 | 4286 | ||
| 4300 | /*********************************************************************** | 4287 | /*********************************************************************** |
| 4301 | Protection from GC | 4288 | Protection from GC |
| @@ -4330,7 +4317,6 @@ returns nil, because real GC can't be done. */) | |||
| 4330 | register struct specbinding *bind; | 4317 | register struct specbinding *bind; |
| 4331 | struct catchtag *catch; | 4318 | struct catchtag *catch; |
| 4332 | struct handler *handler; | 4319 | struct handler *handler; |
| 4333 | register struct backtrace *backlist; | ||
| 4334 | char stack_top_variable; | 4320 | char stack_top_variable; |
| 4335 | register int i; | 4321 | register int i; |
| 4336 | int message_p; | 4322 | int message_p; |
| @@ -4459,17 +4445,7 @@ returns nil, because real GC can't be done. */) | |||
| 4459 | mark_object (handler->handler); | 4445 | mark_object (handler->handler); |
| 4460 | mark_object (handler->var); | 4446 | mark_object (handler->var); |
| 4461 | } | 4447 | } |
| 4462 | for (backlist = backtrace_list; backlist; backlist = backlist->next) | 4448 | mark_backtrace (); |
| 4463 | { | ||
| 4464 | mark_object (*backlist->function); | ||
| 4465 | |||
| 4466 | if (backlist->nargs == UNEVALLED || backlist->nargs == MANY) | ||
| 4467 | i = 0; | ||
| 4468 | else | ||
| 4469 | i = backlist->nargs - 1; | ||
| 4470 | for (; i >= 0; i--) | ||
| 4471 | mark_object (backlist->args[i]); | ||
| 4472 | } | ||
| 4473 | mark_kboards (); | 4449 | mark_kboards (); |
| 4474 | 4450 | ||
| 4475 | #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES | 4451 | #if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES |