diff options
-rw-r--r-- | src/segtree.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/segtree.c b/src/segtree.c index fa11967a..32e071f6 100644 --- a/src/segtree.c +++ b/src/segtree.c @@ -522,9 +522,13 @@ static void set_insert_interval(struct expr *set, struct seg_tree *tree, mpz_set(expr->value, ei->left); expr = set_elem_expr_alloc(&internal_location, expr); - if (ei->expr != NULL && ei->expr->ops->type == EXPR_MAPPING) - expr = mapping_expr_alloc(&ei->expr->location, expr, - expr_get(ei->expr->right)); + if (ei->expr != NULL) { + if (ei->expr->comment) + expr->comment = xstrdup(ei->expr->comment); + if (ei->expr->ops->type == EXPR_MAPPING) + expr = mapping_expr_alloc(&ei->expr->location, expr, + expr_get(ei->expr->right)); + } if (ei->flags & EI_F_INTERVAL_END) expr->flags |= EXPR_F_INTERVAL_END; |