summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-04-04 23:18:03 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-04-04 23:18:03 -0700
commitf78263ed6b6c69e30cc5a68c2e15b544f35809cc (patch)
tree58d9486a3a776fa8c22f1f9cdf8fb0bc47bda349
parentab883bb7401b9f055d5abbf7cfdd0ee8459b2a06 (diff)
downloadtxr-f78263ed6b6c69e30cc5a68c2e15b544f35809cc.tar.gz
txr-f78263ed6b6c69e30cc5a68c2e15b544f35809cc.tar.bz2
txr-f78263ed6b6c69e30cc5a68c2e15b544f35809cc.zip
struct: autoload sys:define-method.
Compiled code references sys:define-method directly without going through the struct macrology that would otherwise trigger the autoload of the struct stuff. The symbol needs to be added to the set of triggers. * lisplib.c (struct_set_entries): Add sys:define-method symbol.
-rw-r--r--lisplib.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lisplib.c b/lisplib.c
index 0862602a..c40cf3a2 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -198,11 +198,15 @@ static val path_test_instantiate(val set_fun)
static val struct_set_entries(val dlt, val fun)
{
+ val sys_name[] = {
+ lit("define-method"), nil
+ };
val name[] = {
lit("defstruct"), lit("qref"), lit("uref"), lit("new"), lit("meth"),
lit("umeth"), lit("usl"), lit("defmeth"), lit("rslot"), nil
};
+ set_dlt_entries_sys(dlt, sys_name, fun);
set_dlt_entries(dlt, name, fun);
if (fun)