summaryrefslogtreecommitdiffstats
path: root/struct.c
diff options
context:
space:
mode:
Diffstat (limited to 'struct.c')
-rw-r--r--struct.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/struct.c b/struct.c
index 2f643dae..1b9e5f1f 100644
--- a/struct.c
+++ b/struct.c
@@ -165,12 +165,8 @@ void struct_init(void)
static_slot_type_hash = make_hash(nil, nil, nil);
struct_type_finalize_f = func_n1(struct_type_finalize);
- if (opt_compat && opt_compat <= 117)
- reg_fun(intern(lit("make-struct-type"), user_package),
- func_n5(make_struct_type_compat));
- else
- reg_fun(intern(lit("make-struct-type"), user_package),
- func_n8o(make_struct_type, 7));
+ reg_fun(intern(lit("make-struct-type"), user_package),
+ func_n8o(make_struct_type, 7));
reg_fun(intern(lit("make-struct-type"), system_package),
func_n8(make_struct_type));
@@ -210,8 +206,6 @@ void struct_init(void)
reg_fun(intern(lit("call-super-fun"), user_package),
func_n2v(call_super_fun));
reg_fun(intern(lit("slotp"), user_package), func_n2(slotp));
- if (opt_compat && opt_compat <= 118)
- reg_fun(intern(lit("slot-p"), user_package), func_n2(slotp));
reg_fun(intern(lit("static-slot-p"), user_package), func_n2(static_slot_p));
reg_fun(intern(lit("structp"), user_package), func_n1(structp));
reg_fun(intern(lit("struct-type"), user_package), func_n1(struct_type));
@@ -225,6 +219,16 @@ void struct_init(void)
reg_fun(intern(lit("static-slot-types"), system_package), func_n1(static_slot_types));
}
+void struct_compat_fixup(int compat_ver)
+{
+ if (compat_ver <= 118)
+ reg_fun(intern(lit("slot-p"), user_package), func_n2(slotp));
+
+ if (compat_ver <= 117)
+ reg_fun(intern(lit("make-struct-type"), user_package),
+ func_n5(make_struct_type_compat));
+}
+
static NORETURN void no_such_struct(val ctx, val sym)
{
uw_throwf(error_s, lit("~a: ~s does not name a struct type"),