diff src/emacs.c @ 39576:d2a8cced572f

(fatal_error_signal_hook): New variable. (fatal_error_signal): Call that function. (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 05 Oct 2001 09:45:30 +0000
parents 9ce039b7595b
children 6eb33bfd9de7
line wrap: on
line diff
--- 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");