Commit 126f9c02 authored by Stefan Monnier's avatar Stefan Monnier

(Fgarbage_collect): Mark keyboards, gtk data, and specpdl

before doing the mark_stack_check_gcpros since they are not on the stack.
parent c046590e
2004-09-13 Stefan Monnier <monnier@iro.umontreal.ca>
* alloc.c (Fgarbage_collect): Mark keyboards, gtk data, and specpdl
before doing the mark_stack_check_gcpros since they are not on the stack.
2004-09-12 Kim F. Storm <storm@cua.dk>
* editfns.c (Fformat): Handle format strings with multiple text
......
/* Storage allocation and gc for GNU Emacs Lisp interpreter.
Copyright (C) 1985,86,88,93,94,95,97,98,1999,2000,01,02,03,2004
Free Software Foundation, Inc.
Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Emacs.
......@@ -4454,6 +4454,20 @@ returns nil, because real GC can't be done. */)
for (i = 0; i < staticidx; i++)
mark_object (*staticvec[i]);
for (bind = specpdl; bind != specpdl_ptr; bind++)
{
mark_object (bind->symbol);
mark_object (bind->old_value);
}
mark_kboards ();
#ifdef USE_GTK
{
extern void xg_mark_data ();
xg_mark_data ();
}
#endif
#if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \
|| GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS)
mark_stack ();
......@@ -4467,11 +4481,6 @@ returns nil, because real GC can't be done. */)
#endif
mark_byte_stack ();
for (bind = specpdl; bind != specpdl_ptr; bind++)
{
mark_object (bind->symbol);
mark_object (bind->old_value);
}
for (catch = catchlist; catch; catch = catch->next)
{
mark_object (catch->tag);
......@@ -4483,19 +4492,11 @@ returns nil, because real GC can't be done. */)
mark_object (handler->var);
}
mark_backtrace ();
mark_kboards ();
#if GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES
mark_stack ();
#endif
#ifdef USE_GTK
{
extern void xg_mark_data ();
xg_mark_data ();
}
#endif
/* Everything is now marked, except for the things that require special
finalization, i.e. the undo_list.
Look thru every buffer's undo list
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment