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 |
|
|
4411 |
for (i = 0; i < staticidx; i++) |
for (i = 0; i < staticidx; i++) |
4412 |
mark_object (*staticvec[i]); |
mark_object (*staticvec[i]); |
4413 |
|
|
4414 |
|
for (bind = specpdl; bind != specpdl_ptr; bind++) |
4415 |
|
{ |
4416 |
|
mark_object (bind->symbol); |
4417 |
|
mark_object (bind->old_value); |
4418 |
|
} |
4419 |
|
mark_kboards (); |
4420 |
|
|
4421 |
|
#ifdef USE_GTK |
4422 |
|
{ |
4423 |
|
extern void xg_mark_data (); |
4424 |
|
xg_mark_data (); |
4425 |
|
} |
4426 |
|
#endif |
4427 |
|
|
4428 |
#if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \ |
#if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \ |
4429 |
|| GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) |
|| GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) |
4430 |
mark_stack (); |
mark_stack (); |
4438 |
#endif |
#endif |
4439 |
|
|
4440 |
mark_byte_stack (); |
mark_byte_stack (); |
|
for (bind = specpdl; bind != specpdl_ptr; bind++) |
|
|
{ |
|
|
mark_object (bind->symbol); |
|
|
mark_object (bind->old_value); |
|
|
} |
|
4441 |
for (catch = catchlist; catch; catch = catch->next) |
for (catch = catchlist; catch; catch = catch->next) |
4442 |
{ |
{ |
4443 |
mark_object (catch->tag); |
mark_object (catch->tag); |
4449 |
mark_object (handler->var); |
mark_object (handler->var); |
4450 |
} |
} |
4451 |
mark_backtrace (); |
mark_backtrace (); |
|
mark_kboards (); |
|
4452 |
|
|
4453 |
#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES |
#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES |
4454 |
mark_stack (); |
mark_stack (); |
4455 |
#endif |
#endif |
4456 |
|
|
|
#ifdef USE_GTK |
|
|
{ |
|
|
extern void xg_mark_data (); |
|
|
xg_mark_data (); |
|
|
} |
|
|
#endif |
|
|
|
|
4457 |
/* Everything is now marked, except for the things that require special |
/* Everything is now marked, except for the things that require special |
4458 |
finalization, i.e. the undo_list. |
finalization, i.e. the undo_list. |
4459 |
Look thru every buffer's undo list |
Look thru every buffer's undo list |