From da4a3f65162368330663ebe70ec2204979ef14a0 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 10 Mar 2016 11:42:10 -0800 Subject: [PATCH] Don't abort on allocation failures while finishing parse --- src/runtime/parser.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/runtime/parser.c b/src/runtime/parser.c index ca32e8b5..b038dc58 100644 --- a/src/runtime/parser.c +++ b/src/runtime/parser.c @@ -93,7 +93,11 @@ typedef enum { static StackSlice ts_parser__pop_one(TSParser *self, int head_index, int count) { StackPopResult pop = ts_stack_pop_count(self->stack, head_index, count); - assert(pop.status == StackPopSucceeded); + if (pop.status != StackPopSucceeded) + return (StackSlice){ + .head_index = -1, + .trees = array_new(), + }; assert(pop.slices.size > 0); assert(pop.slices.contents[0].head_index == head_index); for (size_t i = pop.slices.size - 1; i > 0; i--) {