summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-12-06 09:30:00 +0800
committerPo Lu <luangruo@yahoo.com>2022-12-08 08:57:24 +0800
commit508b0c1b2230e2b7b21299b3ffe64c05d2bf7f81 (patch)
tree9f1c47f410701e8ab076ff25f461ce3309529db1
parent670daa8b6264f9cd813efb0d40ceec253fdd603e (diff)
downloademacs-508b0c1b2230e2b7b21299b3ffe64c05d2bf7f81.tar.gz
Fix crash on Windows 9X
* src/emacs.c (main): Call init_bignum before init_window_once.
-rw-r--r--src/emacs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/emacs.c b/src/emacs.c
index 00e7f86e9ae..d8a2863fd9c 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1924,6 +1924,12 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
Vcoding_system_hash_table. */
syms_of_coding (); /* This should be after syms_of_fileio. */
init_frame_once (); /* Before init_window_once. */
+ /* init_window_once calls make_initial_frame, which calls
+ Fcurrent_time and bset_display_time, both of which allocate
+ bignums. Without the following call to init_bignums, crashes
+ happen on Windows 9X after dumping when GC tries to free a
+ pointer allocated on the system heap. */
+ init_bignum ();
init_window_once (); /* Init the window system. */
#ifdef HAVE_WINDOW_SYSTEM
init_fringe_once (); /* Swap bitmaps if necessary. */