# HG changeset patch # User Gerd Moellmann # Date 1002275130 0 # Node ID d2a8cced572fadffe78e584943a0148fd326964f # Parent f847e069b0f64eb033abb5363440a9ac10e331e7 (fatal_error_signal_hook): New variable. (fatal_error_signal): Call that function. (Fdump_emacs_data, Fdump_emacs): Call check_pure_size. diff -r f847e069b0f6 -r d2a8cced572f src/emacs.c --- a/src/emacs.c Fri Oct 05 09:44:50 2001 +0000 +++ b/src/emacs.c Fri Oct 05 09:45:30 2001 +0000 @@ -292,6 +292,12 @@ /* Nonzero if handling a fatal error already */ int fatal_error_in_progress; +/* If non-null, call this function from fata_error_signal before + committing suicide. */ + +void (*fatal_error_signal_hook) P_ ((void)); + + #ifdef SIGUSR1 SIGTYPE handle_USR1_signal (sig) @@ -351,6 +357,10 @@ #ifndef MSDOS sigunblock (sigmask (fatal_error_code)); #endif + + if (fatal_error_signal_hook) + fatal_error_signal_hook (); + kill (getpid (), fatal_error_code); #endif /* not VMS */ } @@ -1940,6 +1950,7 @@ extern char my_edata[]; Lisp_Object tem; + check_pure_size (); CHECK_STRING (filename, 0); filename = Fexpand_file_name (filename, Qnil); @@ -1973,7 +1984,9 @@ extern char my_edata[]; Lisp_Object tem; Lisp_Object symbol; - int count = specpdl_ptr - specpdl; + int count = BINDING_STACK_SIZE (); + + check_pure_size (); if (! noninteractive) error ("Dumping Emacs works only in batch mode");