From 10eb9dedb67d13948deedef5b7e1c7f3443ec39e Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Mon, 24 Jun 2013 07:56:42 +0000 Subject: [PATCH] bugfix for the linearizer in the C runtime --- src/runtime/c/pgf/linearizer.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/runtime/c/pgf/linearizer.c b/src/runtime/c/pgf/linearizer.c index 8a48bb4fe..c5aac7f4f 100644 --- a/src/runtime/c/pgf/linearizer.c +++ b/src/runtime/c/pgf/linearizer.c @@ -378,7 +378,20 @@ pgf_lzn_resolve(PgfLzn* lzn, PgfExpr expr, PgfCCat* ccat, GuPool* pool) gu_putc(']', wtr, err); GuString s = gu_string_buf_freeze(sbuf, pool); - ret = pgf_lzn_resolve_def(lzn, ccat->lindefs, s, pool); + if (ccat != NULL) { + ret = pgf_lzn_resolve_def(lzn, ccat->lindefs, s, pool); + } else { + PgfCncTreeLit* clit = + gu_new_variant(PGF_CNC_TREE_LIT, + PgfCncTreeLit, + &ret, pool); + clit->fid = lzn->fid++; + PgfLiteralStr* lit = + gu_new_variant(PGF_LITERAL_STR, + PgfLiteralStr, + &clit->lit, pool); + lit->val = s; + } gu_pool_free(tmp_pool); goto done;