summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/comp.c16
-rw-r--r--src/comp.h2
-rw-r--r--src/pdumper.c2
3 files changed, 9 insertions, 11 deletions
diff --git a/src/comp.c b/src/comp.c
index b33ef92f72b..d021be479b0 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -2102,7 +2102,7 @@ emit_ctxt_code (void)
emit_static_object (TEXT_OPTIM_QLY_SYM, Flist (2, opt_qly));
emit_static_object (TEXT_FDOC_SYM,
- CALL1I (comp-ctxt-doc-index-h, Vcomp_ctxt));
+ CALL1I (comp-ctxt-function-docs, Vcomp_ctxt));
comp.current_thread_ref =
gcc_jit_lvalue_as_rvalue (
@@ -3677,14 +3677,12 @@ native_function_doc (Lisp_Object function)
struct Lisp_Native_Comp_Unit *cu =
XNATIVE_COMP_UNIT (Fsubr_native_comp_unit (function));
- if (NILP (cu->data_fdoc_h))
- cu->data_fdoc_h = load_static_obj (cu, TEXT_FDOC_SYM);
-
- eassert (!NILP (cu->data_fdoc_h));
-
- return Fgethash (make_fixnum (XSUBR (function)->doc),
- cu->data_fdoc_h,
- Qnil);
+ if (NILP (cu->data_fdoc_v))
+ cu->data_fdoc_v = load_static_obj (cu, TEXT_FDOC_SYM);
+ if (!VECTORP (cu->data_fdoc_v))
+ xsignal2 (Qnative_lisp_file_inconsistent, cu->file,
+ build_string ("missing documentation vector"));
+ return AREF (cu->data_fdoc_v, XSUBR (function)->doc);
}
DEFUN ("comp--register-subr", Fcomp__register_subr, Scomp__register_subr,
diff --git a/src/comp.h b/src/comp.h
index 73baa27276e..cbdcaccd5fe 100644
--- a/src/comp.h
+++ b/src/comp.h
@@ -38,7 +38,7 @@ struct Lisp_Native_Comp_Unit
Lisp_Object file;
Lisp_Object optimize_qualities;
/* Hash doc-idx -> function documentaiton. */
- Lisp_Object data_fdoc_h;
+ Lisp_Object data_fdoc_v;
/* Analogous to the constant vector but per compilation unit. */
Lisp_Object data_vec;
/* Same but for data that cannot be moved to pure space.
diff --git a/src/pdumper.c b/src/pdumper.c
index c9015d503cd..f837dfc38d2 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -2982,7 +2982,7 @@ dump_native_comp_unit (struct dump_context *ctx,
struct Lisp_Native_Comp_Unit *comp_u)
{
/* Have function documentation always lazy loaded to optimize load-time. */
- comp_u->data_fdoc_h = Qnil;
+ comp_u->data_fdoc_v = Qnil;
START_DUMP_PVEC (ctx, &comp_u->header, struct Lisp_Native_Comp_Unit, out);
dump_pseudovector_lisp_fields (ctx, &out->header, &comp_u->header);
out->handle = NULL;