From 9c2f71b07a5de7d6d4d13dc3c72d9b9ddc2f37dc Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Wed, 8 Oct 2014 12:57:29 +0000 Subject: now we statically allocate closures for all top-level functions and all nullary constructors. closures are dynamically allocated only for CAFs. this reduces memory use and time to allocate dynamic closures --- src/runtime/c/pgf/reader.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/runtime/c/pgf/reader.c') diff --git a/src/runtime/c/pgf/reader.c b/src/runtime/c/pgf/reader.c index c65b8b057..2e8c154be 100644 --- a/src/runtime/c/pgf/reader.c +++ b/src/runtime/c/pgf/reader.c @@ -442,7 +442,12 @@ pgf_read_absfun(PgfReader* rdr, PgfAbstr* abstr) switch (tag) { case 0: absfun->defns = NULL; - absfun->closure_id = 0; + if (absfun->arity == 0) { + absfun->closure.code = abstr->eval_gates->evaluate_value; + absfun->closure.con = &absfun->closure.code; + } else { + absfun->closure.code = NULL; + } break; case 1: { GuLength length = pgf_read_len(rdr); -- cgit v1.2.3