1 |
/* Storage allocation and gc for GNU Emacs Lisp interpreter. |
/* Storage allocation and gc for GNU Emacs Lisp interpreter. |
2 |
Copyright (C) 1985,86,88,93,94,95,97,98,1999,2000,01,02,03,2004 |
Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, |
3 |
Free Software Foundation, Inc. |
2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. |
4 |
|
|
5 |
This file is part of GNU Emacs. |
This file is part of GNU Emacs. |
6 |
|
|
4514 |
for (i = 0; i < staticidx; i++) |
for (i = 0; i < staticidx; i++) |
4515 |
mark_object (*staticvec[i]); |
mark_object (*staticvec[i]); |
4516 |
|
|
4517 |
|
for (bind = specpdl; bind != specpdl_ptr; bind++) |
4518 |
|
{ |
4519 |
|
mark_object (bind->symbol); |
4520 |
|
mark_object (bind->old_value); |
4521 |
|
} |
4522 |
|
mark_kboards (); |
4523 |
|
|
4524 |
|
#ifdef USE_GTK |
4525 |
|
{ |
4526 |
|
extern void xg_mark_data (); |
4527 |
|
xg_mark_data (); |
4528 |
|
} |
4529 |
|
#endif |
4530 |
|
|
4531 |
#if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \ |
#if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \ |
4532 |
|| GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) |
|| GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) |
4533 |
mark_stack (); |
mark_stack (); |
4541 |
#endif |
#endif |
4542 |
|
|
4543 |
mark_byte_stack (); |
mark_byte_stack (); |
|
for (bind = specpdl; bind != specpdl_ptr; bind++) |
|
|
{ |
|
|
mark_object (bind->symbol); |
|
|
mark_object (bind->old_value); |
|
|
} |
|
4544 |
for (catch = catchlist; catch; catch = catch->next) |
for (catch = catchlist; catch; catch = catch->next) |
4545 |
{ |
{ |
4546 |
mark_object (catch->tag); |
mark_object (catch->tag); |
4552 |
mark_object (handler->var); |
mark_object (handler->var); |
4553 |
} |
} |
4554 |
mark_backtrace (); |
mark_backtrace (); |
|
mark_kboards (); |
|
4555 |
|
|
4556 |
#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES |
#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES |
4557 |
mark_stack (); |
mark_stack (); |
4558 |
#endif |
#endif |
4559 |
|
|
|
#ifdef USE_GTK |
|
|
{ |
|
|
extern void xg_mark_data (); |
|
|
xg_mark_data (); |
|
|
} |
|
|
#endif |
|
|
|
|
4560 |
/* Everything is now marked, except for the things that require special |
/* Everything is now marked, except for the things that require special |
4561 |
finalization, i.e. the undo_list. |
finalization, i.e. the undo_list. |
4562 |
Look thru every buffer's undo list |
Look thru every buffer's undo list |