diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2013-06-24 07:56:42 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2013-06-24 07:56:42 +0000 |
| commit | 09a42bbab0bc0d19cd7bd85f8b3705316c8b4038 (patch) | |
| tree | 2f80c3957b2d01019b993098b03db2ed7c967e6f /src | |
| parent | 526bfff57d90fdde4164b562f3b5b9a9d17bb389 (diff) | |
bugfix for the linearizer in the C runtime
Diffstat (limited to 'src')
| -rw-r--r-- | src/runtime/c/pgf/linearizer.c | 15 |
1 files changed, 14 insertions, 1 deletions
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; |
