Use sexp_make_procedure to sexp_make_variable_transformer_op

This commit is contained in:
Daphne Preston-Kendal 2022-01-03 08:28:40 +01:00
parent f32d89175c
commit eb8582f5b1

12
eval.c
View file

@ -400,15 +400,15 @@ static sexp sexp_make_macro (sexp ctx, sexp p, sexp e) {
}
sexp sexp_make_variable_transformer_op (sexp ctx, sexp self, sexp_sint_t n, sexp base_proc) {
sexp flags;
sexp_assert_type(ctx, sexp_procedurep, SEXP_PROCEDURE, base_proc);
if (sexp_procedure_variable_transformer_p(base_proc))
return base_proc;
sexp vt_proc = sexp_alloc_type(ctx, procedure, SEXP_PROCEDURE);
sexp_procedure_flags(vt_proc) = (char) (sexp_uint_t) sexp_make_fixnum (sexp_unbox_fixnum(sexp_procedure_flags(base_proc)) | SEXP_PROC_VARIABLE_TRANSFORMER);
sexp_procedure_num_args(vt_proc) = sexp_procedure_num_args(base_proc);
sexp_procedure_code(vt_proc) = sexp_procedure_code(base_proc);
sexp_procedure_vars(vt_proc) = sexp_procedure_vars(base_proc);
return vt_proc;
flags = sexp_make_fixnum(sexp_unbox_fixnum(sexp_procedure_flags(base_proc)) | SEXP_PROC_VARIABLE_TRANSFORMER);
return sexp_make_procedure(ctx, flags,
sexp_make_fixnum(sexp_procedure_num_args(base_proc)),
sexp_procedure_code(base_proc),
sexp_procedure_vars(base_proc));
}
sexp sexp_make_synclo_op (sexp ctx, sexp self, sexp_sint_t n, sexp env, sexp fv, sexp expr) {