summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/c/pgf/reader.c')
-rw-r--r--src/runtime/c/pgf/reader.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/runtime/c/pgf/reader.c b/src/runtime/c/pgf/reader.c
index 109e30895..80eb479d7 100644
--- a/src/runtime/c/pgf/reader.c
+++ b/src/runtime/c/pgf/reader.c
@@ -758,16 +758,15 @@ pgf_read_cncfun(PgfReader* rdr, PgfAbstr* abstr, PgfConcr* concr, int funid)
size_t len = pgf_read_len(rdr);
gu_return_on_exn(rdr->err, NULL);
+ PgfAbsFun* absfun =
+ gu_map_get(abstr->funs, &name, PgfAbsFun*);
PgfCncFun* cncfun = gu_new_flex(rdr->opool, PgfCncFun, lins, len);
- cncfun->name = name;
+ cncfun->absfun = absfun;
+ cncfun->ep = (absfun == NULL) ? NULL : &absfun->ep;
cncfun->funid = funid;
cncfun->n_lins = len;
- PgfAbsFun* absfun =
- gu_map_get(abstr->funs, &cncfun->name, PgfAbsFun*);
- cncfun->ep = (absfun == NULL) ? NULL : &absfun->ep;
-
for (size_t i = 0; i < len; i++) {
int seqid = pgf_read_int(rdr);
gu_return_on_exn(rdr->err, NULL);