summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-05-04 13:32:57 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-05-04 13:32:57 +0000
commitb8d61fcbb27b21e6793a0e253d34a714bfa0423c (patch)
tree150e680a87d4b789ab6a71bf6fdec9511c8c927d
parentda577d15ef49d4b012a4b1748e71b95c6e3cc333 (diff)
bugfix in the C runtime which was causing an infinite loop while linearizing partial trees
-rw-r--r--src/runtime/c/pgf/linearizer.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/runtime/c/pgf/linearizer.c b/src/runtime/c/pgf/linearizer.c
index 144ef5154..8a48bb4fe 100644
--- a/src/runtime/c/pgf/linearizer.c
+++ b/src/runtime/c/pgf/linearizer.c
@@ -327,6 +327,11 @@ pgf_lzn_resolve(PgfLzn* lzn, PgfExpr expr, PgfCCat* ccat, GuPool* pool)
if (ccat == NULL) {
size_t n_args = gu_buf_length(args);
+ int flag = gu_choice_next(lzn->ch, 1);
+ if (flag == 0) {
+ return gu_null_variant;
+ }
+
PgfCncTreeChunks* chunks =
gu_new_flex_variant(PGF_CNC_TREE_CHUNKS,
PgfCncTreeChunks,