aboutsummaryrefslogtreecommitdiffstats
path: root/src/comp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp.c')
-rw-r--r--src/comp.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/comp.c b/src/comp.c
index 70b0a25a9c0..b33ef92f72b 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -3627,7 +3627,6 @@ load_comp_unit (struct Lisp_Native_Comp_Unit *comp_u, bool loading_dump,
3627 comp_u->data_vec = load_static_obj (comp_u, TEXT_DATA_RELOC_SYM); 3627 comp_u->data_vec = load_static_obj (comp_u, TEXT_DATA_RELOC_SYM);
3628 comp_u->data_impure_vec = 3628 comp_u->data_impure_vec =
3629 load_static_obj (comp_u, TEXT_DATA_RELOC_IMPURE_SYM); 3629 load_static_obj (comp_u, TEXT_DATA_RELOC_IMPURE_SYM);
3630 comp_u->data_fdoc_h = load_static_obj (comp_u, TEXT_FDOC_SYM);
3631 3630
3632 if (!NILP (Vpurify_flag)) 3631 if (!NILP (Vpurify_flag))
3633 /* Non impure can be copied into pure space. */ 3632 /* Non impure can be copied into pure space. */
@@ -3672,6 +3671,22 @@ load_comp_unit (struct Lisp_Native_Comp_Unit *comp_u, bool loading_dump,
3672 return; 3671 return;
3673} 3672}
3674 3673
3674Lisp_Object
3675native_function_doc (Lisp_Object function)
3676{
3677 struct Lisp_Native_Comp_Unit *cu =
3678 XNATIVE_COMP_UNIT (Fsubr_native_comp_unit (function));
3679
3680 if (NILP (cu->data_fdoc_h))
3681 cu->data_fdoc_h = load_static_obj (cu, TEXT_FDOC_SYM);
3682
3683 eassert (!NILP (cu->data_fdoc_h));
3684
3685 return Fgethash (make_fixnum (XSUBR (function)->doc),
3686 cu->data_fdoc_h,
3687 Qnil);
3688}
3689
3675DEFUN ("comp--register-subr", Fcomp__register_subr, Scomp__register_subr, 3690DEFUN ("comp--register-subr", Fcomp__register_subr, Scomp__register_subr,
3676 7, 7, 0, 3691 7, 7, 0,
3677 doc: /* This gets called by top_level_run during load phase to register 3692 doc: /* This gets called by top_level_run during load phase to register