diff options
author | Andrea Corallo <akrl@sdf.org> | 2021-02-10 21:48:19 +0100 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2021-02-10 22:03:34 +0100 |
commit | 4fba79feee58e074d112bb47467913f9aec089c7 (patch) | |
tree | 4db2dcf4a96b9c38f4e8f681bcb6dad2d4d6cc97 /src/pdumper.h | |
parent | 2fcb85c3e780f1f2871ce0f300cfaffce9836eb0 (diff) | |
download | emacs-4fba79feee58e074d112bb47467913f9aec089c7.tar.gz |
Add late load pdumper hooks so these can call into Lisp
* src/pdumper.h (pdumper_do_now_and_after_late_load): New function.
* src/pdumper.c (dump_late_hooks, nr_dump_late_hooks): New static
variables.
(dump_metadata_for_pdumper): Add support for late load hooks.
(pdumper_do_now_and_after_late_load_impl): New functions.
(pdumper_load): Add support for late load hooks.
* src/window.c (init_window_once): Register
'init_window_once_for_pdumper' to be executed after late load.
Diffstat (limited to 'src/pdumper.h')
-rw-r--r-- | src/pdumper.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/pdumper.h b/src/pdumper.h index 24e99e22c7a..49e6739b0dc 100644 --- a/src/pdumper.h +++ b/src/pdumper.h @@ -81,6 +81,7 @@ pdumper_remember_lv_ptr_raw (void *ptr, enum Lisp_Type type) typedef void (*pdumper_hook)(void); extern void pdumper_do_now_and_after_load_impl (pdumper_hook hook); +extern void pdumper_do_now_and_after_late_load_impl (pdumper_hook hook); INLINE void pdumper_do_now_and_after_load (pdumper_hook hook) @@ -92,6 +93,18 @@ pdumper_do_now_and_after_load (pdumper_hook hook) #endif } +/* Same as 'pdumper_do_now_and_after_load' but for hooks running code + that can call into Lisp. */ +INLINE void +pdumper_do_now_and_after_late_load (pdumper_hook hook) +{ +#ifdef HAVE_PDUMPER + pdumper_do_now_and_after_late_load_impl (hook); +#else + hook (); +#endif +} + /* Macros useful in pdumper callback functions. Assign a value if we're loading a dump and the value needs to be reset to its original value, and if we're initializing for the first time, |