Fix segfaults when byte-compiling with native-compilation
* src/emacs.c (main): Call 'set_initial_minibuffer_mode' before entering recursive-exit. * src/minibuf.c (init_minibuf_once_for_pdumper): Don't call 'set_minibuffer_mode' here... (set_initial_minibuffer_mode): ... set it in this new function. (Bug#48446) * src/lisp.h: Add prototype for 'set_initial_minibuffer_mode'.
This commit is contained in:
parent
46e4704e2a
commit
b5e6dba05f
3 changed files with 11 additions and 3 deletions
|
@ -2294,6 +2294,7 @@ Using an Emacs configured with --with-x-toolkit=lucid does not have this problem
|
|||
Vdump_mode = build_string (dump_mode);
|
||||
|
||||
/* Enter editor command loop. This never returns. */
|
||||
set_initial_minibuffer_mode ();
|
||||
Frecursive_edit ();
|
||||
eassume (false);
|
||||
}
|
||||
|
|
|
@ -4377,6 +4377,7 @@ extern EMACS_INT this_minibuffer_depth (Lisp_Object);
|
|||
extern EMACS_INT minibuf_level;
|
||||
extern Lisp_Object get_minibuffer (EMACS_INT);
|
||||
extern void init_minibuf_once (void);
|
||||
extern void set_initial_minibuffer_mode (void);
|
||||
extern void syms_of_minibuf (void);
|
||||
extern void barf_if_interaction_inhibited (void);
|
||||
|
||||
|
|
|
@ -2271,6 +2271,13 @@ If no minibuffer is active, return nil. */)
|
|||
|
||||
|
||||
|
||||
void
|
||||
set_initial_minibuffer_mode (void)
|
||||
{
|
||||
Lisp_Object minibuf = get_minibuffer (0);
|
||||
set_minibuffer_mode (minibuf, 0);
|
||||
}
|
||||
|
||||
static void init_minibuf_once_for_pdumper (void);
|
||||
|
||||
void
|
||||
|
@ -2279,6 +2286,8 @@ init_minibuf_once (void)
|
|||
staticpro (&Vminibuffer_list);
|
||||
staticpro (&Vcommand_loop_level_list);
|
||||
pdumper_do_now_and_after_load (init_minibuf_once_for_pdumper);
|
||||
/* Ensure our inactive minibuffer exists. */
|
||||
get_minibuffer (0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2296,9 +2305,6 @@ init_minibuf_once_for_pdumper (void)
|
|||
minibuf_prompt = Qnil;
|
||||
minibuf_save_list = Qnil;
|
||||
last_minibuf_string = Qnil;
|
||||
/* Ensure our inactive minibuffer exists. */
|
||||
Lisp_Object minibuf = get_minibuffer (0);
|
||||
set_minibuffer_mode (minibuf, 0);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Add table
Reference in a new issue